2011-05-18 53 views
2

可能重複:
Java: How do detect a remote side socket close?如何檢測斷開事件

我用Java編寫的Socket與和ServerSocket的小程序。 我有一個服務器和一些客戶端,當用戶(客戶端)關閉窗口時,客戶端和服務器之間的連接將被關閉。

我的問題是在服務器上,我無法檢測到關閉事件。誰能幫我。

我可以發送消息從客戶端到服務器通知此事件之前關閉連接。但是,如果用戶從tast manager(javaw.exe)處理結束,這個解決方案將不可能。

回答

2

找到答案的唯一真正方法是實際嘗試將某些內容寫入遠程通道。它會拋出適當的異常,如果套接字關閉(同樣適用於讀取,但它可能會返回-1代替)

+0

某些時間客戶端不會發送任何東西到服務器。所以這個解決方案,我認爲它不會工作 – 2011-05-18 10:39:41

+0

@Vo,它仍然會工作。因爲無論如何它會拋出異常。 – 2011-05-28 08:32:40