因為: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...