0

我正在用 Java 设计一个客户端服务器聊天应用程序,它在它们之间使用 TCP 连接。当客户端强制关闭时,我无法弄清楚如何在服务器端进行检测。我需要这个,因为我正在维护一个在线客户端列表,并且当他强行关闭连接时我需要从列表中删除用户。

任何帮助将不胜感激。

谢谢

塔拉辛格

4

3 回答 3

2

及时接收断开连接通知的一种方法是尝试定期发送一小段信息。然后,您将知道的客户端断开连接的最新消息最多是您的时间间隔。人们称之为心跳。

于 2010-04-15T01:12:20.187 回答
1

假设你的服务器使用的是java.net.Socket,你可以不定时的查询socket,它提供了方法isClosed()和isConnected()。

于 2010-04-15T01:13:35.073 回答
0

这取决于您如何处理套接字 I/O

例如,如果您使用选择器 (java.nio) 在一组套接字上执行非阻塞 I/O,您将​​在下次调用 select() 时发现任何断开连接。

也许如果你用你如何处理套接字来更新你的问题?

于 2010-04-15T01:17:02.137 回答