如何判断ServerSocket客户端是否已断开连接?

时间:2019-11-07 19:03:05

标签: android sockets serversocket

我的服务器类型应用程序侦听ServerSocket并接受来自客户端的连接。然后,我可以对其进行读写。我不知道的是如何检测客户端是否断开连接。 MySocket.isConnected()函数继续返回true。同样,isClosed()始终返回false。

我在其他地方读到, only 的告诉方式是尝试读取或写入它并检测到异常。 这是唯一的方法吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的好方法。这是我所做的:

  • 我放弃了Android版本,将服务器移植到Windows。

  • 在服务器应用程序中,我使用 CreateEvent()创建了两个Event对象。

  • 我使用 CreateThread()产生了两个线程,每个套接字一个。

  • 每个线程在其套接字上发出阻塞读取。

  • 成功读取 后,每个线程都会处理接收到的数据。在读取失败(例如断开连接)时,我将其事件设置为使用 SetEvent()发出信号。

  • 在服务器应用程序中,我使用 WaitForMultipleObjects()等待两个事件。如果发生任何一个事件,我都会对断开连接采取适当的适当措施(目前,我只是退出)。

也许不是我最初问题的答案,但它满足了我的要求。

相关问题