作者:手机用户2502859545 | 来源:互联网 | 2023-06-24 02:54
我的服务器类型应用程序侦听ServerSocket并接受来自客户端的连接。然后,我可以对其进行读写。我不知道的是如何检测客户端是否断开连接。 MySocket.isConnected()函数继续返回true。同样,isClosed()始终返回false。
我在其他地方读到, only 的告诉方式是尝试读取或写入它并检测到异常。 这是唯一的方法吗?
我找到了解决问题的好方法。这是我所做的:
-
我放弃了Android版本,将服务器移植到Windows。
-
在服务器应用程序中,我使用 CreateEvent()创建了两个Event对象。
-
我使用 CreateThread()产生了两个线程,每个套接字一个。
-
每个线程在其套接字上发出阻塞读取。
-
成功读取 后,每个线程都会处理接收到的数据。在读取失败(例如断开连接)时,我将其事件设置为使用 SetEvent()发出信号。
-
在服务器应用程序中,我使用 WaitForMultipleObjects()等待两个事件。如果发生任何一个事件,我都会对断开连接采取适当的适当措施(目前,我只是退出)。
也许不是我最初问题的答案,但它满足了我的要求。