Java Socket断开连接报告与C#断开连接

在C#中,当套接字连接终止时,在终止链接之前通知另一个节点,因此重新获取节点可以更新连接状态.

Java中,当我终止通信链接时,另一个节点继续将连接报告为有效.

我是否需要实现一个读取周期(有意义),在读取期间收到-1时报告连接丢失(在C#中我认为这是0)?

感谢您的见解.

编辑:谢谢你们俩.正如我怀疑并在我的帖子中提到的,需要额外检查以确认连接的连接状态.

解决方法:

在java中,只有在读取/写入套接字或从套接字读取或查询输入流状态(例如,InputStream.available())时,才能发现套接字的另一端被关闭.我认为没有任何异步通知表明另一端已关闭.

您如何测试套接字是否仍处于打开状态?

您可以轮询InputStream.available()方法,如果返回-1,则表示套接字已关闭.当然,如果符合您的使用情况,您也可以阅读数据.

InputStream.available()

上一篇:具有丢失/断开连接的事务上的MySQL回滚


下一篇:python – Redis定期断开并重新连接Twisted