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

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

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

    csusky

    常用鏈接

    統計

    最新評論

    2009年11月10日 #

    異步IO的關閉事件

    JAVA SOCKET只定義了四種事件

    public static final int OP_READ = 1 << 0;
    public static final int OP_WRITE = 1 << 2;
    public static final int OP_CONNECT = 1 << 3;
    public static final int OP_ACCEPT = 1 << 4;

    是沒有關閉事件的,我們怎么判斷一個連接是否關閉呢?
    如果你的selector注冊了一個OP_READ事件,那么在連接關閉的時候將會產生一個OP_READ事件
    也就是說本來阻塞的selector此時將會被喚醒,但是如果試圖在此事件的通道中讀取數據將會返回-1
    如下:

    Set<SelectionKey> readyKeys = selector.selectedKeys();

    = readyKeys.iterator()

    SelectionKey key 
    = (SelectionKey)i.next();

    if (operation == SelectionKey.OP_READ &&
                             key.isReadable())
                    
    {
                        ReadableByteChannel incomingChannel 
    = (ReadableByteChannel)key.channel(); 
    //此時將會得到-1,表明該鏈接已關閉
    int n = incomingChannel.read(readBuffer);
    }
    此時我們需要取消該KEY 如下:
    if (n == -1)
                
    {
                    key.cancel();
                      //關閉輸入輸出 
                      sc.socket().shutdownOutput();
                      sc.socket().shutdownInput();
                       //關閉SOCKET
                       sc.socket().close();
                      //關閉通道
                       incomingChannel.close();
                }

    posted @ 2009-11-10 22:28 曉宇 閱讀(424) | 評論 (1)編輯 收藏

    主站蜘蛛池模板: 黄色一级毛片免费| 亚洲精品色播一区二区| 国产成人无码精品久久久免费| 午夜爱爱免费视频| 亚洲AV成人一区二区三区在线看| 91嫩草免费国产永久入口| 亚洲av成人无码久久精品| 爱丫爱丫影院在线观看免费| 亚洲va中文字幕无码久久| a级午夜毛片免费一区二区| 久久久无码精品亚洲日韩蜜桃| 无码av免费一区二区三区试看| 中文字幕亚洲综合精品一区| **aaaaa毛片免费| 亚洲剧情在线观看| 免费电影在线观看网站| 亚洲国产高清国产拍精品| 成人永久福利免费观看| 免费一级毛片在线播放放视频| 精品国产亚洲一区二区在线观看| 中文字幕无码日韩专区免费| 亚洲精品人成电影网| 成人片黄网站色大片免费| 国产成人亚洲精品91专区高清 | 精品久久久久亚洲| 亚洲国产成人精品91久久久| 三年片在线观看免费| 亚洲视频在线免费播放| 噜噜嘿在线视频免费观看| 日韩电影免费在线观看网址| 亚洲AV午夜成人片| 91在线视频免费91| 爱情岛论坛免费视频| 无码专区—VA亚洲V天堂| 欧美男同gv免费网站观看 | 在线毛片片免费观看| 亚洲制服在线观看| 国产精品亚洲w码日韩中文| 日本视频在线观看永久免费| 亚洲一区二区观看播放| 国产偷国产偷亚洲清高动态图|