亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久久99精品免费观看不卡| 日韩成人一级大片| 三级在线观看一区二区| 国产成人av福利| 在线电影院国产精品| 中文字幕在线不卡一区二区三区| 蜜臀久久99精品久久久久久9| 99久久精品国产网站| 久久久久久电影| 久久99国产精品久久| 欧美精品v国产精品v日韩精品| 亚洲欧美日韩国产另类专区| 国产激情一区二区三区| 欧美xxxxx裸体时装秀| 香蕉成人啪国产精品视频综合网| av不卡免费电影| 国产视频一区在线播放| 精品一区二区在线观看| 日韩午夜在线观看| 日韩av一区二区三区四区| 91黄视频在线| 一区二区三区在线视频播放| 9人人澡人人爽人人精品| 国产丝袜欧美中文另类| 国产寡妇亲子伦一区二区| 欧美成人video| 蜜桃视频在线一区| 欧美成人在线直播| 蜜臀久久99精品久久久久久9| 91麻豆精品国产自产在线观看一区| 亚洲综合色丁香婷婷六月图片| 一本色道a无线码一区v| 日韩一区在线看| 色综合一区二区三区| 免费人成网站在线观看欧美高清| 欧美亚洲图片小说| 夜夜嗨av一区二区三区| 欧美性猛交xxxx乱大交退制版| 亚洲免费视频中文字幕| 欧美亚洲国产怡红院影院| 亚洲一区二区三区精品在线| 欧美日韩亚洲综合一区二区三区| 亚洲线精品一区二区三区八戒| 欧美丝袜第三区| 日韩电影在线免费观看| 久久欧美一区二区| 91丝袜高跟美女视频| 亚洲午夜久久久久中文字幕久| 91精品国产综合久久福利| 国产综合色产在线精品| 国产精品狼人久久影院观看方式| 91麻豆国产在线观看| 天堂va蜜桃一区二区三区| 精品卡一卡二卡三卡四在线| 国产91精品一区二区麻豆网站| 中文字幕一区二区三区蜜月| 欧美亚洲另类激情小说| 韩国一区二区三区| 自拍偷拍亚洲欧美日韩| 欧美精品1区2区3区| 国产一区二区美女诱惑| 亚洲视频香蕉人妖| 91精品国产综合久久久久久| 国产麻豆精品95视频| 一区二区日韩av| 欧美成人aa大片| 91免费看片在线观看| 免费在线一区观看| 日韩毛片一二三区| 日韩精品一区二区三区视频在线观看| 成人性生交大合| 免费观看久久久4p| 亚洲美女电影在线| 国产午夜三级一区二区三| 欧美在线观看一二区| 国产成人av电影免费在线观看| 性做久久久久久久久| 中文字幕乱码久久午夜不卡| 91麻豆精品国产91久久久久| 99久久久无码国产精品| 国精品**一区二区三区在线蜜桃| 亚洲免费观看在线观看| 国产亚洲短视频| 欧美一区二区三区四区视频| 91丨九色porny丨蝌蚪| 国产精品一色哟哟哟| 日韩高清不卡在线| 亚洲制服丝袜av| 欧美国产激情二区三区| 欧美精品一区二区三| 欧美日本在线观看| 色诱视频网站一区| 成人听书哪个软件好| 韩国精品一区二区| 另类小说欧美激情| 天使萌一区二区三区免费观看| 亚洲视频免费看| 成人免费小视频| 国产精品福利一区二区三区| 久久精品免视看| 久久影院视频免费| 欧美变态口味重另类| 欧美一区二区三区男人的天堂| 欧美日韩亚洲综合| 欧美区在线观看| 亚洲欧洲成人精品av97| 久久青草欧美一区二区三区| 精品国产凹凸成av人导航| 欧美成人官网二区| 精品国产凹凸成av人网站| 2021久久国产精品不只是精品| 精品少妇一区二区三区在线播放| 制服.丝袜.亚洲.另类.中文| 欧美日韩一级片在线观看| 欧美日韩在线精品一区二区三区激情 | 久久国产精品区| 麻豆免费看一区二区三区| 美女高潮久久久| 国产一区二区三区四区五区入口| 国产原创一区二区三区| 国产成人免费视频一区| 成人一区在线观看| 91在线高清观看| 欧美性色黄大片| 日韩三级av在线播放| 久久久99精品久久| 国产精品黄色在线观看| 亚洲天堂a在线| 亚洲va欧美va人人爽午夜| 日日夜夜精品视频天天综合网| 久久精品72免费观看| 国产成人免费av在线| 91丝袜美女网| 日韩一级在线观看| 国产欧美精品一区二区三区四区 | 亚洲精品国产无天堂网2021| 亚洲国产wwwccc36天堂| 奇米精品一区二区三区在线观看| 精品一区二区三区免费观看| 国产suv精品一区二区883| 在线观看中文字幕不卡| 日韩欧美国产一区二区在线播放| 国产午夜精品一区二区三区视频| 国产精品久久久久久久久免费相片 | 国产精品中文有码| 99热国产精品| 7777女厕盗摄久久久| 亚洲国产精品av| 婷婷久久综合九色综合伊人色| 国产一区二区影院| 色久综合一二码| 久久久久国色av免费看影院| 亚洲女子a中天字幕| 美脚の诱脚舐め脚责91| 色综合久久天天综合网| 精品美女在线播放| 一区二区三区精品在线| 国产伦理精品不卡| 欧美三区在线观看| 欧美国产视频在线| 日本成人在线不卡视频| 99国产一区二区三精品乱码| 日韩免费成人网| 一区二区三区四区不卡在线| 精品一区二区三区日韩| 精品视频在线免费看| 国产精品国产三级国产普通话99| 日韩和欧美一区二区三区| 日韩欧美国产电影| 亚洲自拍偷拍图区| 成人精品视频一区| 亚洲精品在线观| 日本特黄久久久高潮| 91国偷自产一区二区开放时间 | 91视频91自| 久久青草欧美一区二区三区| 午夜不卡av在线| 欧美亚洲一区三区| 亚洲婷婷国产精品电影人久久| 国产精品亚洲视频| 精品国产髙清在线看国产毛片| 午夜久久久影院| 精品视频免费在线| 亚洲高清免费视频| 在线一区二区视频| 一区二区在线看| 日本精品裸体写真集在线观看| 亚洲天天做日日做天天谢日日欢| 国产成人免费视| 国产亚洲精品资源在线26u| 久久99精品久久久久婷婷| 日韩视频一区二区在线观看| 日本色综合中文字幕| 欧美肥大bbwbbw高潮| 亚洲h在线观看| 欧美日韩精品一区视频| 亚洲小说春色综合另类电影| 欧美性受xxxx黑人xyx性爽| 亚洲欧美另类综合偷拍| 日本乱人伦aⅴ精品|