有关TCP连接的问题强制关闭

时间:2010-04-15 01:07:09

标签: java sockets client-server serversocket

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

任何帮助都将受到高度赞赏。

谢谢

Tara Singh

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

假设您的服务器使用的是java.net.Socket,您可以不时查询套接字,它提供方法isClosed()和isConnected()。

答案 2 :(得分:0)

这取决于您处理套接字I / O的方式

例如,如果您使用选择器(java.nio)在一组套接字上执行非阻塞I / O,那么下次调用select()时,您将了解有关任何断开连接的信息。

如果您更新了有关如何处理套接字的问题,可能会这样做吗?