<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    xsocket socket學習

    Posted on 2009-11-17 14:53 瘋狂 閱讀(5946) 評論(3)  編輯  收藏 所屬分類: java
         最近項目中想通過java來調用c來啟動驅動程序 ,由于項目是部署在winCE上(內存30多m),初步定下使用socket,所以就看了下輕量級的開源xSocket ,感覺用起來挺簡單,而且性能和效率不錯。apace mina 也很強大但是功好多功能用不上也就沒用。
          xSocket是一個輕量級的基于nio(since jdk1.5)的服務器框架用于開發高性能、可擴展、多線程的服務器。該框架封裝了線程處理、異步讀/寫等方面。
        使用也很簡單 :
    server端:new Server(8090,new ServerDataHander()).start();
    client端:new NonBlockingConnection("localhost", 8090,new ClientDataHander());
     其中ServerDataHander,ClientDataHander為自己定義類,都可以實現接口IConnectExceptionHandler, IConnectHandler, IDisconnectHandler等接口:通過重寫回調函數來處理數據:操作相當方便。例如:
     
    public boolean onData(INonBlockingConnection connection)
                    
    throws IOException, BufferUnderflowException,
                    ClosedChannelException, MaxReadSizeExceededException 
    {
                
    byte[] data = connection.readBytesByLength(connection.available());

                
    //hander.
                return true;
            }


            @Override
            
    public boolean onConnectException(INonBlockingConnection connection,
                    IOException ioe) 
    throws IOException {
                chatServer.area.append(
    "error connect please try again\r\n");
                
    return true;
            }


            @Override
            
    public boolean onConnect(INonBlockingConnection connection)
                    
    throws IOException, BufferUnderflowException,
                    MaxReadSizeExceededException 
    {
                chatServer.area.append(
    "client["+connection.getRemoteAddress()+"] is connected\r\n");
                
    return true;
            }


            @Override
            
    public boolean onDisconnect(INonBlockingConnection connection)
                    
    throws IOException {
                chatServer.area.append(
    "client["+connection.getRemotePort()+"] is disconnected\r\n");
                
    return true;
            }

      下面是自己做的一個例子:
    最終界面:
     server端:


    客戶端:


    可運行代碼下載(解壓可用):
    /Files/freeman1984/xsockettest.rar

    評論

    # re: xsocket socket學習  回復  更多評論   

    2011-04-19 17:53 by limingxing
    您好,我拜讀了您的xsocket做的聊天客戶端與服務端。遇到一個疑惑:
    public class XSocketClient {
    public static void main(String[] args) throws IOException {
    NonBlockingConnection bc = new NonBlockingConnection(host, port,new ClientDataHander());
    }
    }
    我在main函數中實例化了bc,就是這樣一個小程序,可是運行以后程序會馬上關閉,我不得其解。
    運行了您的代碼,結果卻又是非常正確的。我努力尋找我的代碼與您的代碼之間的區別,在于:我的main函數中實例化 NonBlockingConnection,而您的代碼中 NonBlockingConnection的實例化不在main函數中。為什么這樣的差別會造成現在的結果呢?如果我想自己的代碼能順利進行長連接該怎么辦呢?
    企盼您的解答。祝好~

    # re: xsocket socket學習  回復  更多評論   

    2011-04-25 10:07 by @joe
    @limingxing
    public static void main(String[] args) throws IOException {
    NonBlockingConnection bc = new NonBlockingConnection(host, port,new ClientDataHander());
    }
    }
    這明顯不對啊,參數從哪來,姐姐。

    # re: xsocket socket學習  回復  更多評論   

    2012-02-10 09:44 by LSH744
    請問服務端怎么發送消息給客戶端啊
    主站蜘蛛池模板: 一级毛片在线观看免费| 久久成人18免费网站| 国产综合亚洲专区在线| 久久亚洲私人国产精品| 国产大片免费天天看| 真人做人试看60分钟免费视频| 最好免费观看韩国+日本| 国产精品V亚洲精品V日韩精品 | 中文无码亚洲精品字幕| 一级特黄aaa大片免费看| 亚洲一区二区三区免费观看| 亚洲国产精品一区二区第一页免 | jlzzjlzz亚洲乱熟在线播放| 亚洲第一视频在线观看免费| 国产AV无码专区亚洲AV男同| 最近中文字幕电影大全免费版 | 国产亚洲福利一区二区免费看| 美女裸体无遮挡免费视频网站| 97国产免费全部免费观看 | 四虎国产精品成人免费久久 | 免费无码精品黄AV电影| 国产亚洲AV无码AV男人的天堂 | 亚洲综合一区二区三区四区五区| 女人与禽交视频免费看| 亚洲网红精品大秀在线观看| 青娱乐在线免费观看视频| 区久久AAA片69亚洲| 在线免费观看亚洲| 亚洲另类自拍丝袜第五页| 亚洲区不卡顿区在线观看| 亚洲男同gay片| 久久亚洲AV无码西西人体| 污污的视频在线免费观看| 国产AV无码专区亚洲AV毛网站| 97热久久免费频精品99| 免费人成网站永久| 久久久亚洲AV波多野结衣| 宅男666在线永久免费观看| 精品亚洲永久免费精品 | 亚洲AV无码一区二区三区在线观看 | 亚洲色大成网站www永久一区|