我已经使用套接字编写了一个Java客户端-服务器应用程序。我正在使用writeUnshared()
的{{1}}和ObjectOutputStream
的{{1}}的方法。
现在,我想检测何时断开连接以重新连接(例如,何时Wifi信号丢失)。目前,对于readObject()
我正在捕获ObjectInputStream
,对于ObjectInputStream
我正在捕获EOFException
以检测管道是否阻塞。
这是正确的还是两个流都应该捕获ObjectOutputStream
?
答案 0 :(得分:1)
您可以使用Javadoc,它建议捕获所有与I / O相关的常见异常的IOException。
或者您可以通过自己的测试。
或者您可以通过source code进行检查,这表明在使用“块数据”模式时,只要没有足够的字节来构造完整对象,序列化就会使用EOFException。但是,这不能解决所有断开连接的情况。
考虑所有因素,我建议IOException。