如何抓住插座破损的管道?

问题描述 投票:0回答:1

我使用套接字编写了一个Java客户端 - 服务器应用程序。我正在使用writeUnshared()ObjectOutputStreamreadObject()ObjectInputStream

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

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

java sockets ioexception eofexception
1个回答
1
投票

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

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

或者你可以去source code,它表明当使用“块数据”模式时,只要没有足够的字节来构造一个完整的对象,序列化就会使用EOFException。但是,这不会捕获连接断开的所有情况。

考虑到所有事情,我会推荐IOException。

© www.soinside.com 2019 - 2024. All rights reserved.