当互联网连接突然断开时套接字会发生什么?

时间:2016-05-31 09:11:26

标签: java sockets

我有一台服务器和很多客户端。我的客户通过服务器发送消息。如果客户端连接到服务器,我的服务器将此客户端的套接字引用放入Sock数组。如果另一个客户端向此第一客户端服务器发送消息,则检查第一个客户端是否使用布尔数组连接到服务器,如果它在线,则使用数组中的套接字引用将消息发送到第一个客户端,否则将消息发送到数据库。 每个客户端在注销到服务器之前发送关闭信号,以便它可以更新布尔数组。但是如果第一个客户端的互联网连接突然断开,那么数组中的布尔变量仍然为真。为此我想在服务器中创建一个检查布尔数组的线程,如果数组中的任何索引为真,我想检查对应的套接字是否打开。我应该使用socket的什么方法 - socket.isConnected()或socket.isClosed()或其他任何方法?

1 个答案:

答案 0 :(得分:3)

确保连接正常工作的唯一方法是定期接收心跳或消息 有isConnectd()意思是;我有没有联系过isClosed()这意味着什么;我是否打电话给close(),但这些都没有做你想做的事。