我在使用Java套接字API时遇到了一些问题。我正在尝试显示当前连接到我的游戏的玩家数。当一个玩家连接时,很容易确定。然而,使用套接字API确定玩家何时断开连接似乎是不必要的困难。
调用已经从远程断开连接的套接字上的isConnected()
总是返回true
。同样,调用已经关闭远程套接字上的isClosed()
总是返回false
。我已经了解到实际确定套接字是否已关闭,必须向输出流写入数据并捕获异常。这似乎是一种非常不干净的处理方式。我们只需不断地向网络发送垃圾消息,才能知道套接字何时已关闭。
还有其他解决方案吗?