NIO客戶端主動關閉連線,導致伺服器空輪詢

2021-09-09 01:38:27 字數 491 閱讀 2149

當客戶端連線關閉時,伺服器select()不會阻塞,然後一直分發讀就緒操作。

public

static

void

main

(string[

] args)

throws ioexception

else

if(selectionkey.

isreadable()

)catch

(ioexception e)

if(count >0)

}}catch

(exception e)})

;// 清除

selectionkeys.

clear()

;}catch

(ioexception e)}}

}

當客戶端斷開連線後,client.read(buffer);會出現異常,所以需要手動的關閉這個長鏈結。

參考

Python 實現sftp客戶端(連線遠端伺服器)

import paramiko transport paramiko.transport 106.15.88.182 22 獲取transport例項 transport.connect username root password 123456 建立連線 建立sftp物件,sftpclient是定...

NIO客戶端主要建立過程

nio客戶端主要建立過程 socketchannel clientchannel socketchannel.open 步驟二 設定socketchannel為非阻塞模式,同時設定客戶端連線的tcp引數,示例 如下 clientchannel.configureblocking false sock...

qt TCP客戶端判斷服務端關閉連線

一 客戶端判斷服務端是不是已經關閉的簡單方法就是傳送傳送資料,看返回是不是有錯誤 二 客戶端建立連線 void mainwindow btn connect server void mainwindow connected success 二 判斷部分 void mainwindow btn ser...