『壹』 怎樣知道多個客戶端與伺服器端的連接是否斷開
在伺服器中,選擇注銷斷開連接。或者在客戶端,關閉遠程桌面連接窗口,斷開伺服器連接。
『貳』 vb.net socket怎麼判斷客戶端和伺服器的連接斷開了 thank you!
tcp
還是
udp?
tcp
的話
try
-
catch
就行了,因為
tcp
要求的是穩定的連接,連接一斷開直接就
throw
exception
了。
udp
的話,因為它本身是無連接的協議,所以其實不存在斷開不斷開的,准確的說應該是超時。可以客戶端每隔一段時間向服務端發送個心跳包(隨便什麼數據都行,只是證明客戶端還在線),服務端每隔一段時間檢測在線的客戶端列表,誰已經很久沒發來心跳包了就證明它掉線了。
『叄』 c#中如何探測網路連接是否斷開
使用Socket類中的Poll方法,就可以。
Socket client //假如已經創建好了,連接到伺服器端得Socket的客戶端對象。
我們只要client.Poll(10,SelectMode.SelectRead)判斷就行了。只要返回True是。就可以認為客戶端已經斷開了。
Poll 方法將會檢查 Socket 的狀態。指定 selectMode 參數的 SelectMode..::.SelectRead,可確定 Socket 是否為可讀。指定 SelectMode..::.SelectWrite,可確定 Socket 是否為可寫。使用 SelectMode..::.SelectError 檢測錯誤條件。Poll 將在指定的時段(以 microseconds 為單位)內阻止執行。如果希望無限期的等待響應,則將 microSeconds 設置為一個負整數。如果要檢查多個套接字的狀態,則不妨使用 Select 方法。
『肆』 socket編程中,伺服器如何檢測到客戶端網路連接的斷開.比如說客戶端的網線斷掉了,從服務端如何能檢測到呢l
通過心跳包來確保客戶端是否正常連接,比如定時發心跳包給客戶端,然後接收回應包,如果沒有收到該回應包則可以認為客戶端已經斷開連接,這個算是常規做法,至少在我所有SOCKET編程中都使用這種方式來維護連接狀態。
『伍』 伺服器怎麼判斷客戶端socket是否已斷開連接
你可以根據伺服器收到的數據的長度來判斷,如果伺服器收到的數據長度是0,那麼意味著你的客戶端程序已經斷開了連接。從TCP/IP協議棧的角度來說,就是客戶端程序關閉了自己寫的這一半連接,向伺服器發出了一個FIN。這涉及到TCP的狀態遷移,關於這方面的知識,建議你看一下Richard Stevens先生的《TCP/IP 詳解》卷一和《Unix網路編程》卷一,上面有詳細的解釋。
關於你的第二個問題,建議你仔細看一下自己的伺服器程序代碼。伺服器程序首先要建立一個監聽socket,當有客戶端連接上來時,伺服器會在一個新socket上接受客戶端連接。所以並不存在「亂」的問題。關於這個問題同樣推薦你看上面的兩本關於網路編程的經典著作。
『陸』 java:伺服器如何檢測客戶端已經斷開
在客戶端退出之後,會出現socket連接中斷,此時是會拋出異常,在拋出異常時列印中斷的客戶端即可。
1. while(Binput.read()!= -1) 這種方法能判斷出客戶端輸入是否為空,客戶端斷開能跳出死循環,但是得到的數據卻從第二個開始了,所以這方法不適宜。
2. 在死循環中加入以下代碼:
try {
socket.sendUrgentData(0);
} catch (IOException e) {
done= false; //如果拋出了異常,那麼就是斷開連接了 跳出無限循環
}
『柒』 有什麼辦法可以查看伺服器是否斷網
很簡單啊,如果網路斷開了,就表示你在外網時無法遠程操作了。
如果你在內網中管理,ping下就可以,遠程桌面進去看,連不上就有可能down掉了。
如果是能在伺服器本機上登錄,看系統日誌就可以 了,一些比較好品牌的伺服器都自己帶硬體監測的,也可以查到。
還是推薦查看windows系統日誌
『捌』 如何在WebSocket的伺服器側檢測客戶端的斷開連接
通過心跳包,以確保客戶端正確連接,比如經常發心跳包到客戶端,然後接收響應數據包,如果沒有接收到響應數據包可以被認為是一個客戶端已經斷開,這是標準的做法,至少在我所有的SOCKET編程都採用這種方式來保持連接狀態。
『玖』 客戶端怎麼判斷Socket連接已與伺服器斷開
你可以根據伺服器收到的數據的長度來判斷,如果伺服器收到的數據長度是0,那麼意味著你的客戶端程序已經斷開了連接。從tcp/ip協議棧的角度來說,就是客戶端程序關閉了自己寫的這一半連接,向伺服器發出了一個fin。這涉及到tcp的狀態遷移,關於這方面的知識,建議你看一下richard
stevens先生的《tcp/ip
詳解》卷一和《unix網路編程》卷一,上面有詳細的解釋。
關於你的第二個問題,建議你仔細看一下自己的伺服器程序代碼。伺服器程序首先要建立一個監聽socket,當有客戶端連接上來時,伺服器會在一個新socket上接受客戶端連接。所以並不存在「亂」的問題。關於這個問題同樣推薦你看上面的兩本關於網路編程的經典著作。