今天打开工程发现一个异常:Software caused connection abort: recv failed
2015-12-22 11:17 半城vs编程 阅读(1654) 评论(0) 收藏 举报记录一下:
这个异常可能是因为客户端网络连接断了,查了相关资料,简单总结一下, 在服务端/客户端单方面关闭连接的情况下,另一方依然以为 tcp连接仍然建立,试图读取对方的响应数据,导致出现 Software caused connection abort: recv failed的异常.
因此在receive数据之前,要先判断连接状态. 通过inputstream的available()方法来判断,是否有响应结果. 如果available()的返回值为0,说明没有响应数据,可能是对方已经断开连接, 如果available()的返回值大于0,说明有响应数据. 另外值得注意的是available()返回的值是非堵塞的,可以被多个线程访问
浙公网安备 33010602011771号