繁体   English   中英

如何捕捉破损的插座管?

[英]How to catch broken pipe for sockets?

我已经使用套接字编写了一个Java客户端-服务器应用程序。 我正在使用ObjectOutputStream writeUnshared()方法和ObjectInputStream readObject()方法。

现在,我想检测何时断开连接以重新连接(例如,何时Wifi信号丢失)。 当前,对于ObjectInputStream我正在捕获EOFException ,对于ObjectOutputStream我正在捕获IOException以检测管道是否中断。

这是正确的还是应该为两个流都捕获IOException

您可以使用Javadoc ,它建议为所有常见的与I / O相关的异常捕获IOException。

或者您可以通过自己的测试。

或者,您可以查看源代码 ,其中显示了当使用“块数据”模式时,只要没有足够的字节来构造完整的对象,序列化就会使用EOFException。 但是,这并不能解决所有断开连接的情况。

考虑所有事情,我建议IOException。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM