我在我的服务器上有一个监听端口,我正在使用Java类和Socket接口连接,即

Socket mySocket = new Socket(host,port);

然后我抓住一个OutputStream ,在autoflush模式下使用PrintWriter进行装饰,我笑了 - 除非监听端口关闭。 然后我明白了

tcp4       0      0  *.9999                 *.*                    LISTEN
tcp        0      0  127.0.0.1.45737        127.0.0.1.9999         CLOSE_WAIT

我似乎无法在程序中检测到问题 - 我尝试在套接字上使用isConnected()方法,但似乎并不知道连接已关闭。

我想在下次尝试写入Socket时意识到这个问题,以便我可以尝试重新连接并报告问题。

有什么建议吗?

谢谢大家

===============>>#1 票数:0

检测TCP中断连接的唯一可靠方法是写入它,这最终会导致“连接重置”IOException。 但是由于缓冲,它不会在断开连接后的第一次写入时发生,而是在随后的写入时发生。 你无能为力。

===============>>#2 票数:0 已采纳

设置一个短暂的超时?

isOutputShutdown()不能得到你想要的吗?

你总是可以构建一个SocketWatcher类,它在自己的Thread中旋转并反复尝试将空字符串写入Socket直到引发SocketClosedException

===============>>#3 票数:-2

设置不同的线程以从套接字读取。 它将阻塞直到套接字关闭,然后抛出异常。 捕获该异常以立即检测到关闭。

  ask by brabster translate from so

未解决问题?本站智能推荐:

1回复

具有ReadLine异常的Java处理中的套接字编程

我是套接字编程的新手,正在尝试找出异常处理问题。 我无法从java中的客户端向服务器发送字符串消息,因为在运行程序时,代码的readLine部分给出了异常错误。 我尝试在服务器类中抛出Exception,并且在运行服务器程序时没有出现红色带下划线的代码错误,但是当我在服务器程序之后运行客户端
2回复

套接字连接丢失了一半 - 不抛出IOException

我在这里读到了一些关于这个问题的答案,但我对它们并不满意,所以我决定自问。 所以我知道有类似的问题,但由于答案对我不起作用,我问自己。 我有一个应用程序,允许2个用户相互连接(一个用作服务器,另一个用作客户端)。 他们将通过该套接字连接发送文件。 我正在使用一个内部有2个线程的服务,
1回复

Java套接字读取错误异常与返回码

我使用以下循环从套接字读取数据 有时会断开连接,这是预期的,但是结果不一致。 我收到异常,或retCode ==-1 因此,我的问题是什么导致读取套接字时确定异常与返回代码?
3回复

Java网络问题:java.net.ConnectException:连接被拒绝:连接

当我运行简单的网络程序时,我无法在Java中进行任何联网我无法获得连接,即使在使用本地主机时,错误: 这是该计划: 我使用Windows 7,我已经转向Windows防火墙,我没有反病毒。
2回复

读取文件时出现IndexOutOfBoundException

我正在处理TFTP服务器应用程序。 我设法处理了从服务器到客户端的成功文件传输,但是另一种方法却存在问题。 客户端不必传输整个文件,而只是终止编译器,而不会返回任何错误。 调试器在标记的代码上显示IOBE异常,表示该数组超出范围。 整个转移过程如下: 客户端传输文件名和
1回复

使connect()尝试速度过快时出现套接字OSError [WinError 10022]

我有一个客户端,需要反复轮询以查看期望的服务器是否在那里,并优雅​​地处理一个事实,即它可能不在很长一段时间内。 看下面的测试脚本: 结果: 看来,如果我在我的connect()尝试之间没有放置大约0.9s的延迟,则会出现此异常。 到底是怎么回事?
1回复

无法分配新套接字,抛出无效参数异常

我创建了一个新项目,单行代码是新套接字的分配: 它引发了一个例外: System32.DLL中发生了类型system.net.sockets.socket异常的未处理异常 附加信息:提供了无效参数 它还会写出这些代码: 0x80004005, ErrorCode
2回复

解码消息时反序列化异常

我正在一个项目中,该项目利用Packet.cs对象作为“行进模式”,利用简单的Socket连接在客户端和服务器之间传递小变量。 客户端和服务器是不同项目的一部分,但是是相同的解决方案,而Packet.cs也是一个单独的“共享项目”。 这是我的packet.cs文件: 这就是我用来
1回复

Java套接字连接失败

我有一个Java代码在我的计算机上运行,​​而我的朋友有一个客户代码在他的计算机上运行。 当他输入我的IP以连接到我的服务器并获取日期时,连接失败并且什么也没有发生。 请注意,当我在自己的计算机上运行服务器和客户端程序并输入localhost作为地址时,连接成功,并且我正确获得了日期消息。
1回复

在Java中使用FTP并检测断开连接

我已经使用org.apache.commons.net.ftp.FtpClient创建了一个可靠的FTP类,该类应该并行下载多个文件,然后重试失败。 奇怪的是,我似乎无法获得识别故障的代码。 例如,如果我在传输过程中拉动以太网电缆,则该代码似乎继续在以下位置阻塞: 线。 有人可