2010-04-15 68 views
0

我正在設計一個使用TCP連接的Java客戶端服務器聊天應用程序。當客戶端強行關閉時,我無法弄清楚如何在服務器端進行檢測。我需要這個,因爲我維護着在線客戶端列表,當他強制關閉連接時,我需要從列表中刪除用戶。有關TCP連接的問題強行關閉

任何幫助將不勝感激。

感謝

塔拉·辛格

+0

您覺得這些有幫助嗎?請回到您的問題並保持更新。 – Kylar 2010-04-22 17:37:06

回答

2

一種方式接收到斷開的及時通報是嘗試定期發送一小塊的信息。那麼,最新的你會知道客戶端斷開連接最多是你的間隔。人們稱之爲心跳。

+0

感謝您的建議。我確實實現了這一點。 – 2010-10-30 20:17:42

1

假設您的服務器正在使用java.net.Socket,您可以隨時查詢套接字,它提供方法isClosed()和isConnected()。

0

這取決於你如何處理你的套接字I/O

例如,如果您使用的是選擇(java.nio中)做一組插座的非阻塞I/O你在下一次調用select()時,將會查找有關斷開連接的信息。

也許如果你更新你的問題與你如何處理套接字?