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

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

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

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
    最近在開發(fā)中遇到一個問題,就是如何判斷遠(yuǎn)端服務(wù)器是否已經(jīng)斷開連接,如果斷開那么需要重新連接。 

    首先想到socket類的方法isClosed()、isConnected()、isInputStreamShutdown()、isOutputStreamShutdown()等,但經(jīng)過試驗并查看相關(guān)文檔,這些方法都是本地端的狀態(tài),無法判斷遠(yuǎn)端是否已經(jīng)斷開連接。 

    然后想到是否可以通過OutputStream發(fā)送一段測試數(shù)據(jù),如果發(fā)送失敗就表示遠(yuǎn)端已經(jīng)斷開連接,類似ping,但是這樣會影響到正常的輸出數(shù)據(jù),遠(yuǎn)端無法把正常數(shù)據(jù)和測試數(shù)據(jù)分開。 

    最后又回到socket類,發(fā)現(xiàn)有一個方法sendUrgentData,查看文檔后得知它會往輸出流發(fā)送一個字節(jié)的數(shù)據(jù),只要對方Socket的SO_OOBINLINE屬性沒有打開,就會自動舍棄這個字節(jié),而SO_OOBINLINE屬性默認(rèn)情況下就是關(guān)閉的,太好了,正是我需要的! 

    于是,下面一段代碼就可以判斷遠(yuǎn)端是否斷開了連接: 

    Java代碼  收藏代碼
    1. try{  
    2.       socket.sendUrgentData(0xFF);  
    3. }catch(Exception ex){  
    4.       reconnect();  
    5. }  



    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久亚洲sm情趣捆绑调教| 人妖系列免费网站观看| 日韩一区二区免费视频| 丰满妇女做a级毛片免费观看| 亚洲国产日韩在线视频| 毛片免费在线播放| 成人免费无码H在线观看不卡| 亚洲天堂福利视频| 国产成人亚洲综合无码| 国产国产人免费视频成69堂| 免费观看又污又黄在线观看| 亚洲精品午夜视频| 亚洲第一永久AV网站久久精品男人的天堂AV| 可以免费观看的毛片| 小说区亚洲自拍另类| 亚洲精品一区二区三区四区乱码 | jizz在线免费观看| 亚洲人成7777影视在线观看| 一本久久a久久精品亚洲| 性做久久久久久久免费看| 日本高清免费观看| jizzjizz亚洲日本少妇| 亚洲国产精品线观看不卡| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 国产亚洲蜜芽精品久久| 亚洲视频一区二区三区| 久久久精品国产亚洲成人满18免费网站 | 国产精品亚洲专区无码牛牛| 精品亚洲成AV人在线观看| 国产精品亚洲产品一区二区三区| 亚洲视频在线观看免费视频| 中文字幕免费在线看电影大全 | 亚洲国产成人久久综合一区77 | 亚洲?v女人的天堂在线观看| 很黄很黄的网站免费的| 午夜老司机永久免费看片| 久久WWW免费人成—看片| 看一级毛片免费观看视频| 亚洲成A人片在线播放器| 亚洲精品亚洲人成在线观看麻豆| 国产亚洲综合一区柠檬导航|