如何捕捉破损的插座管?

时间:2019-03-24 22:03:25

标签: java sockets ioexception eofexception

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

或者您可以通过source code进行检查,这表明在使用“块数据”模式时,只要没有足够的字节来构造完整对象,序列化就会使用EOFException。但是,这不能解决所有断开连接的情况。

考虑所有因素,我建议IOException。