【问题标题】:Java: Detecting client disconnects from server side [duplicate]Java:检测客户端与服务器端断开连接[重复]
【发布时间】:2011-04-09 18:23:40
【问题描述】:

我正在使用 Socket 和 ServerSocket 编写 Java 客户端/服务器程序。多个客户端一次连接到服务器。检查客户端连接是否与服务器端断开连接的最佳方法是什么?现在,我在尝试写入断开连接的客户端时收到了 SocketException。

【问题讨论】:

  • 这个问题对你有帮助:stackoverflow.com/questions/698964/…
  • SocketException 告诉你已经已经关闭了套接字。它表示您的应用程序中存在逻辑错误。 检测一个关闭的连接,而不是像现在这样忽略它,方法是 read() 返回 -1 或 write() 抛出一个 IOException

标签: java sockets client client-server


【解决方案1】:

检测断开连接的最佳方法是让另一端发送心跳,并在没有数据时让读取器超时。

【讨论】:

  • 只是澄清一下,谁会发送心跳?服务器还是客户端?
  • 作者发送心跳,读者期待它们。客户端或服务器端无关紧要。
  • @PeterLawrey 我们如何假设与客户端正确断开连接以应用心跳调用...可能存在中断套接字连接的中断...我想检测并进行更改针对特定用户进行适当的更改。
  • @Sathish 您通过心跳写入失败或未收到来检测它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多