在C#中,当套接字连接终止时,在终止链接之前通知另一个节点,因此重新获取节点可以更新连接状态.
在Java中,当我终止通信链接时,另一个节点继续将连接报告为有效.
我是否需要实现一个读取周期(有意义),在读取期间收到-1时报告连接丢失(在C#中我认为这是0)?
感谢您的见解.
编辑:谢谢你们俩.正如我怀疑并在我的帖子中提到的,需要额外检查以确认连接的连接状态.
解决方法:
在java中,只有在读取/写入套接字或从套接字读取或查询输入流状态(例如,InputStream.available())时,才能发现套接字的另一端被关闭.我认为没有任何异步通知表明另一端已关闭.
您如何测试套接字是否仍处于打开状态?
您可以轮询InputStream.available()方法,如果返回-1,则表示套接字已关闭.当然,如果符合您的使用情况,您也可以阅读数据.