java - 如何检测断开连接事件

标签 java sockets serversocket

<分区>

Possible Duplicate:
Java: How do detect a remote side socket close?

我正在使用带有 Socket 和 ServerSocket 的 java 编写一个小程序。 我有一个服务器和一些客户端,当用户(客户端)关闭窗口时,客户端和服务器之间的连接将关闭。

我的问题出在服务器上,我无法检测到关闭事件。谁能帮帮我。

我可以在关闭连接之前从客户端向服务器发送一条消息来通知这个事件。但是如果用户端进程来自tast manager (javaw.exe),这个解决方案就不可能了。

最佳答案

找出答案的唯一且唯一正确的方法是实际尝试向远程 channel 写入一些内容。如果套接字关闭,它将抛出适当的异常(类似地适用于读取,但它可能会返回 -1 而不是)

关于java - 如何检测断开连接事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6043184/

相关文章:

Java:从不同的类绘制到 JPanel

MessageDigest SHA1结果和原始哈希值的Java字节数组比较?

multithreading - Thread.Sleep() 和 Thread.SpinWait() 有什么区别

Java Server Socket绑定(bind)多个域名/主机名

java - 如何防止单个列在 JTable 中被重新排序?

java - 如何连接两个特殊的RDD?

ios - NSStream 写入套接字不会在 WiFi 关闭时出现错误。为什么?

java - html5 音频 GET 连接由移动设备上的对等方重置(在 PC 上工作正常)

java - android serverSocket初始化导致服务中的权限被拒绝异常(远程)

java - 为什么 DataInputStream.readUTF() 导致主线程永远等待? [套接字编程]