【发布时间】:2013-09-07 01:28:49
【问题描述】:
我正在尝试轮询服务器端的套接字以检查客户端是否仍然可用。我在这里检查了几个线程,但似乎没有任何效果。
我发现没有直接的检查方法,所以我尝试对套接字执行写操作,并且... Java 正在写入套接字(当客户端断开连接时)并且我没有遇到预期 IOException 的异常.
我设置了一个线程,它应该每秒执行一次轮询发送数据包。大约一分钟后发送到断开连接的客户端时,我收到“操作超时”的响应。
我也尝试过使用套接字 setSoTimeout,但它也没有按预期工作。
有人对如何使它工作有任何建议吗?
非常感谢您。
最好的问候, 汤姆
【问题讨论】:
-
在客户端机器上,是否有病毒扫描程序在运行?当我通过尝试连接来检查可达性时遇到了这种情况,病毒扫描程序导致所有连接都正确设置,但它们是“假的”。只是为了确定:我们在谈论 TCP,对吗?
-
是的,我们正在谈论 TCP。病毒扫描程序不是问题,因为客户端是 iOS 设备,我实际上是通过禁用网络来断开设备的连接。所以它不可能继续工作。
标签: java sockets exception java-io bufferedwriter