亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sample.java

?? JAVA網絡編程等幾個小程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
這是一個TCP服務器端的實現代碼,監聽客戶端的請求,在子線程中處理各個客戶端發來的數據包,再將處理后的結果送回客戶端。這里提供的代碼很完整,包括一個mainclass,一個監聽class和它的interface,一個包處理class,一個發送class,基本上可以直接使用。其中用到的一些工具類,例如Debug、GenProfile、Terminator等,它們代碼也會出現在隨后的系列文章中。


package org.kyle.net.svr.sample;

 

import java.io.*;

import java.util.*;

import java.net.*;

 

public class Sample

{

    // GenProfile是一個配置文件工具類,從配置文件中取得運行參數

   protected GenProfile m_env = null;

    protected IListener m_Listener = null;

 

    public Sample()

    {

    String cfgFile = System.getProperty("MainConfigFile","server.cfg");

        m_env = new GenProfile( cfgFile );

    }

 

    public boolean startService()

    {

        try

        {

            // IntegrationFactory是一個工廠類,創建一個Listener實例

            m_Listener=IntegrationFactory.createListener(m_env);

            m_Listener.setProfile(m_env);

            m_Listener.startListener();

            Debug.info("Server started.");

            return true;

        }

        catch( Exception e)

        {

            Debug.warning(e);

        }

        return false;

    }

 

    public boolean stopService()

    {

        try

        {

            m_ Listener.stopListener();

            Debug.info("Server service stopped.");

            return true;

        }

        catch( Exception e )

        {

            Debug.warning(e);

        }

        return false;

    }

 

    public static void main( String [] argv )

    {

        try

        {

          Sample main = new Sample();

          main.startService();

          // Terminator用來接收鍵盤操作,按下特定鍵后使程序退出。

          Terminator terminator = null;

          terminator = new Terminator(System.in, main);

          terminator.start();

          synchronized (main) {

            main.wait(); //將主進程懸掛,直到在Terminator里激活。

            main.stopService();

          }

          System.exit(0);

        }

        catch( Exception e )

        {

            Debug.warning(e);

        }

    }

}

 

 

package org.kyle.net.svr.sample;

 

import java.net.*;

 

public interface IListener

{

    public void setProfile( GenProfile env );

    public void listenOn(int port);

    public void setTimeout( int timeout );

    public void startListener();

    public void stopListener();

    public RawPkt accept();

    public void close();

}

 

 

 

package org.kyle.net.svr.sample;

 

import java.net.*;

import java.io.*;

import java.util.*;

import java.math.*;

 

public class SampleListenerImpl extends Thread implements IListener

{

    private boolean m_isRunning = false;

    private boolean m_innerCall = false;

    private int m_listenAt = -1;

    private int m_timeout = -1;

    private Socket m_skt = null;

    private ServerSocket m_svrSkt = null;

 

    public SampleListenerImpl ()

    {

        setName("SampleListener.");

    }

 

    public SampleListenerImpl ( GenProfile env )

        throws SocketException, SecurityException, IOException

    {

        setName("SampleListener.");

        if ( env == null )

            throw new SecurityException("No Environment provided!");

        m_env = env;

        invokeSocket();

    }

 

    public void setProfile( GenProfile env )

    {

        m_env = env;

    }

    public void run()

    {

        try

        {

            invokeSocket();

            Debug.info("Listening at " + m_svrSkt.getLocalPort() + "...");

            while( m_isRunning )

            {

                try

                {

                    m_innerCall = true;

                    accept();

                    m_innerCall = false;

                }

                catch( Exception e)

                {

                    Debug.info(e);

                }

            }

        }

        catch(Exception e)

        {

            Debug.info(e);

        }

    }

 

    public void startListener()

    {

        if ( !m_isRunning )

        {

            m_isRunning = true;

            start();

        }

    }

    public void stopListener()

    {

        if ( m_isRunning )

        {

            m_isRunning = false;

            interrupt();

            close();

        }

    }

 

    public RawPkt accept()

    {

        if ( m_isRunning )

        {

            if ( m_innerCall )

            { }

            else

            {

                Debug.finest("StandAlone Listener was started, external call of accept failed.");

                return null;

            }

        }

 

        try

        {

            m_skt = m_svrSkt.accept();

            m_skt.setSoTimeout( m_env.getTimeout() * 1000 );

            Debug.fine("ServerSocket accepted. ");

            new FreeListener( m_skt );

            return null;

        }

        catch( InterruptedIOException iioe)

        {

            Debug.info("Listener Timed Out: " + iioe.getMessage()  + "\n");

        }

        catch(IOException ioe)

        {

            Debug.info(ioe);

        }

        catch(Exception e)

        {

            Debug.info(e);

        }

        return null;

    }

 

    public void listenOn(int port)

    {

        if ( port < 0 || port > 65535 ) port = 0;

        m_listenAt = port;

    }

 

    public void close()

    {

        if ( m_skt != null )

        {

            if ( !m_isRunning )

            {

                try{

                    m_skt.close();

                    m_skt = null;

                }

                catch( IOException ioe)

                {

                    Debug.warning(ioe);

                }

            }

        }

    }

 

    public void setTimeout( int timeout )

    {

        if ( timeout < 0 ) timeout = 300;

        m_timeout = timeout;

    }

    /////////////Private methods section.///////////////////////////////

    private void invokeSocket()

        throws SocketException, SecurityException, IOException

    {

        if ( m_skt == null )

        {

            m_svrSkt = new ServerSocket( m_listenAt != -1 ? m_listenAt : m_env.getListenAt() );

            m_svrSkt.setSoTimeout( m_timeout != -1 ? m_timeout*1000: m_env.getTimeout()*1000 );

        }

    }

 

    class FreeListener extends Thread

    {

        Socket m_skt;

        public FreeListener( Socket skt )

        {

            m_skt = skt;

            start();

        }

 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国成人在线视频| 久久久九九九九| 91精品国产综合久久婷婷香蕉| 欧美日韩另类一区| 欧美激情一区二区在线| 亚洲va在线va天堂| 国产不卡在线视频| 91精品综合久久久久久| 亚洲国产精品国自产拍av| 午夜视频在线观看一区二区三区 | 亚洲一区在线观看免费| 韩国成人福利片在线播放| 在线免费观看日本一区| 国产精品私房写真福利视频| 日韩不卡一区二区三区| 欧美中文字幕一区二区三区 | 久久久国产午夜精品| 视频在线在亚洲| 91麻豆国产香蕉久久精品| 2023国产一二三区日本精品2022| 亚洲成人手机在线| 在线国产电影不卡| 亚洲精品成人悠悠色影视| 成人va在线观看| 久久蜜桃一区二区| 久久99久久99| 精品日产卡一卡二卡麻豆| 轻轻草成人在线| 88在线观看91蜜桃国自产| 亚洲国产wwwccc36天堂| 91成人在线免费观看| 亚洲视频一区在线| 97久久超碰精品国产| 国产亲近乱来精品视频| 成人一区二区三区中文字幕| 中文字幕国产精品一区二区| 国产成人精品网址| 国产农村妇女精品| 不卡的av电影| 一区二区三区中文免费| 在线免费不卡电影| 亚洲电影在线播放| 欧美日本国产视频| 美女视频黄免费的久久 | 欧美少妇bbb| 视频一区国产视频| 日韩免费视频一区二区| 久久精品国产一区二区三 | 日韩视频免费观看高清完整版在线观看 | 日韩精品一二区| 国产精品成人网| 精品久久久网站| 欧美大片一区二区| 国产日产欧美一区| 国产精品久久久久久久久搜平片| 亚洲四区在线观看| 日韩影院免费视频| 国产一区二区三区四| 99久久99精品久久久久久| 色欧美片视频在线观看在线视频| 色先锋久久av资源部| 91 com成人网| 中文字幕在线不卡视频| 一卡二卡欧美日韩| 久久se这里有精品| 精品一区二区三区免费视频| 成人激情免费电影网址| 日韩视频免费直播| 国产女人水真多18毛片18精品视频| 久久精品国产99久久6| 国产精品久久久久久久久久久免费看 | 欧美一区二区成人| 日本伊人精品一区二区三区观看方式| 在线不卡一区二区| 久久黄色级2电影| 国产午夜亚洲精品不卡| 欧美一级片在线观看| ww亚洲ww在线观看国产| 一区视频在线播放| 亚洲第一综合色| 开心九九激情九九欧美日韩精美视频电影| 六月丁香婷婷色狠狠久久| 丁香啪啪综合成人亚洲小说| 在线观看欧美日本| 日韩欧美精品在线| 亚洲精品欧美二区三区中文字幕| 亚洲电影一区二区| 国产精品自拍三区| 色综合一个色综合亚洲| www..com久久爱| 国产三级一区二区| 中文字幕中文字幕中文字幕亚洲无线 | 日韩一级二级三级| 国产精品美日韩| 一区二区三区.www| 96av麻豆蜜桃一区二区| 日韩一区二区三区电影在线观看 | 国产一区二区三区日韩| 大桥未久av一区二区三区中文| 日本精品视频一区二区三区| 色综合 综合色| 国产欧美日韩中文久久| 精品久久久久av影院| 欧美日韩精品一区二区三区四区| 精品福利av导航| 一本久久a久久精品亚洲| 国产一区二区看久久| 日韩av电影免费观看高清完整版| 成人欧美一区二区三区白人| 精品国一区二区三区| 91激情五月电影| 国产成人免费视频网站 | 欧美三级日本三级少妇99| 亚洲一区二区在线播放相泽| 91久久久免费一区二区| 午夜国产精品一区| 久久午夜羞羞影院免费观看| 国产在线视频不卡二| 中文字幕精品一区| 成人一道本在线| 亚洲一区二区三区自拍| 3atv一区二区三区| 韩国三级在线一区| 亚洲一二三四区| 国产亚洲精品aa午夜观看| 欧美系列在线观看| 国产成人在线观看| 亚洲高清视频在线| 国产精品亲子伦对白| 欧美日韩黄视频| 成人高清视频免费观看| 亚洲人成小说网站色在线| 欧美一区日韩一区| 在线精品视频小说1| 国产一区二区三区美女| 日韩在线一区二区三区| 成人免费在线播放视频| 色综合久久久久综合| 色婷婷av一区| 国产成人精品一区二区三区四区| 国产精品一区二区在线观看网站| 综合欧美一区二区三区| 高清国产一区二区| 日韩**一区毛片| 日韩精品一卡二卡三卡四卡无卡| 国产一区二区免费看| 国产性做久久久久久| 国产美女一区二区| 国产精品久久久久婷婷二区次| 国产性天天综合网| 亚洲丝袜另类动漫二区| 午夜私人影院久久久久| 美女视频免费一区| 国产一区二区福利视频| www.亚洲在线| 欧美手机在线视频| 欧美mv日韩mv| 亚洲日本青草视频在线怡红院| 国产精品激情偷乱一区二区∴| 亚洲成人av一区| 一级女性全黄久久生活片免费| 亚洲国产一区二区三区青草影视| 夜夜亚洲天天久久| 蜜桃视频在线观看一区| 美女视频网站久久| 91搞黄在线观看| 色老头久久综合| 欧美日本精品一区二区三区| 久久综合999| 中文字幕一区二区三区精华液| 欧美一区二区人人喊爽| 国产欧美日韩另类视频免费观看| 国产精品久久久久久久久图文区 | 亚洲亚洲精品在线观看| 美女视频网站久久| 91麻豆福利精品推荐| 51午夜精品国产| 国产精品色在线观看| 久久机这里只有精品| 91黄色激情网站| 午夜精品久久久久影视| 国产美女娇喘av呻吟久久| 成人免费毛片app| 精品国产成人在线影院| 亚洲国产va精品久久久不卡综合 | 久久综合国产精品| 亚洲欧美日韩成人高清在线一区| 国产成人综合亚洲网站| 欧美一区二区三区白人| 中文字幕国产一区| 国产一区美女在线| 日韩欧美一二三区| 亚洲国产综合在线| 亚洲福利一区二区三区| 午夜电影网一区| 免费一级欧美片在线观看| 亚洲五月六月丁香激情| 精品视频999| 偷拍与自拍一区| 在线播放日韩导航|