C 伺服器怎麼知道客戶端斷開TCP連線

2021-10-08 04:42:15 字數 392 閱讀 5219

因為:1、正常情況下 客戶端斷開會產生錯誤,在連線裡面能catch到

把套接字操作放到try  catch裡,如果一端斷開了,另一端還繼續進行套接字操作就會抱錯。你捕捉到就說明另一端完蛋了,進行你要的處理就好了啊 。

2、但是如果客戶端是突然斷電等情況下,不會產生這個錯誤 連線會一直等待下去。

1、定義乙個與客戶連線相關的boolean變數 b

2、客戶端那邊用乙個執行緒 每隔一定時間傳送乙個無意義的資料報

3、伺服器接收到了就將變數b設定為true

4、在伺服器這邊開啟乙個執行緒心跳包

public void 心跳包() 

//檢測到客戶端掉線

}

這樣就可以判斷客戶端掉線,你可以進行處理了

C Socket伺服器端如何判斷客戶端斷開

使用socket類中的poll方法,就可以。socket client 假如已經建立好了,連線到伺服器端得socket的客戶端物件。我們只要client.poll 10,selectmode.selectread 判斷就行了。只要返回true是。就可以認為客戶端已經斷開了。poll 方法將會檢查 s...

C Socket伺服器端如何判斷客戶端斷開求解

socket client 假如已經建立好了,連線到伺服器端得socket的客戶端物件。我們只要client.poll 10,selectmode.selectread 判斷就行了。只要返回true是。就可以認為客戶端已經斷開了。poll 方法將會檢查 socket 的狀態。指定 selectmod...

伺服器中判斷客戶端socket斷開連線的方法

下面來羅列一下判斷遠端已經斷開的方法 法一 當recv 返回值小於等於0時,socket連線斷開。但是還需要判斷 errno是否等於 eintr,如果errno eintr 則說明recv函式是由於程式接收到訊號後返回的,socket連線還是正常的,不應close掉socket連線。法二 struc...