当前位置: 代码迷 >> Android >> 断开Java中的客户端套接字
  详细解决方案

断开Java中的客户端套接字

热度:29   发布时间:2023-08-04 10:25:37.0

我正在开发一个聊天项目,以服务iOS,Android,WindowsPhone应用程序,

我有点问题:服务器套接字如何检测断开连接的客户端???,

说明:

  1. 当我使用Java控制台时,我单击Windows的X按钮,然后服务器套接字检测到客户端断开连接,并在用户在线列表中将其删除

  2. 当我在手机应用程序上使用客户端时,我关闭了Wifi和3G来断开服务器套接字,但服务器套接字未检测到断开的客户端。

如何解决这个问题呢??

P / S:我不能使用clientSocket.setSoTimeout(),因为客户端始终连接到服务器套接字,它仅在网络问题时断开连接。

如果我正确理解了您的问题,那么您正在问如何知道服务器与客户端之间的连接何时断开。
您可以使用一个维护线程,该线程将继续从List<ServerSocket>检查,它可以调用serverSocketObj.isClosed() ,如果找到,则可以从列表中删除该ServerSocket项。
您可以使用一个布尔值字段在ThreadPoolExecutor管理正在运行的任务(客户端聊天服务),在此它将检查连接是否仍然有效。 该维护线程可以适当地设置此字段。

  相关解决方案