热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

我的服务器类型应用程序侦听ServerSocket并接受来自客户端的连接。然后,我可以

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

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



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


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


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


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


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


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


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


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


推荐阅读
author-avatar
手机用户2502859545
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有