Software caused connection abort: recv failed
2019独角兽企业重金招聘Python工程师标准>>>
Software caused connection abort: recv failed 博客分类: 异常
Software caused connection abort: recv failed
java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
产生这个异常的原因有多种方面,单就如 Software caused 所示,
是由于程序编写的问题,而不是网络的问题引起的.
已知会导致这种异常的一个场景如下:
客户端和服务端建立tcp的短连接,每次客户端发送一次请求,
服务端响应后关闭与客户端的连接.
如果客户端在服务端关闭连接后,没有释放连接,继续试图发送请求和接收响应.
这个时候就会出错.
这个时候客户端Socket的getOutputStream返回来的OutPutStream维护
的是本地的连接状态,
无法知道远程的服务端已经关闭了对应的InputStream和socket因此
虽然调用了
out.write(sendbuf, 0, sendbuf.length);
方法,但是实际上服务端并没有接收到客户端的请求信息.
因为没有抛出异常,因此造成了误以为客户端请求发送成功的假象.
接下来调用etInputStream的in.read(header, 0, 14);方法.
因为这次要读取服务端的信息,因此产生了
Software caused connection abort: recv failed的异常
总结产生原因,在服务端/客户端单方面关闭连接的情况下,另一方依然以为
tcp连接仍然建立,试图读取对方的响应数据,导致出现
Software caused connection abort: recv failed的异常.
因此在receive数据之前,要先判断连接状态.
通过inputstream的available()方法来判断,是否有响应结果.
如果available()的返回值为0,说明没有响应数据,可能是对方已经断开连接,
如果available()的返回值大于0,说明有响应数据.
另外值得注意的是available()返回的值是非堵塞的,可以被多个线程访问
在对方释放连接后,也要释放本地的连接.
转载于:https://my.oschina.net/xiaominmin/blog/1597858
Software caused connection abort: recv failed相关推荐
- Android studio ERROR: Software caused connection abort: recv failed 解决方法
使用Android studio打开kotlin项目时报错:ERROR: Software caused connection abort: recv failed 解决方法:修改三个文件即可 1.修 ...
- 使用Spring JDBC时遇到的Software caused connection abort: recv failed问题
在使用Spring jdbc连接数据库时遇到一个头疼的问题:程序启动以后,如果长时间不访问调用,当再次调用时会报错: 引用 org.springframework.dao.DataAccessReso ...
- [MySQL]Software caused connection abort: recv failed 问题分析与解决
原文:http://blog.csdn.net/chuan122345/article/details/4894398 在项目开发时,遇到该异常,通过搜索在mysql官方网站上发现如下说明: I am ...
- 解决:java.net.SocketException: Software caused connection abort: recv failed
前言:最近在学习 NIO 和netty 相关知识时,在bio的模式下,遇到了 java.net.SocketException: Software caused connection abort: r ...
- 关于socket write error 和Software caused connection abort: recv failed 错误
Software caused connection abort: recv failed 错误 @Overridepublic void run() {// TODO Auto-generated ...
- 解决SSH连接出现 Software caused connection abort 的问题
解决SSH连接出现 Software caused connection abort 的问题 参考文章: (1)解决SSH连接出现 Software caused connection abort 的 ...
- linux ssh 远程登陆 报错 software caused connection abort 解决方法
使用远程登录工具putty或者SecureCRT连接到服务器时,长时间不操作造成网络中断,出现Software caused connection abort Software caused conn ...
- 异常:Software caused connection abort: socket write error
异常:Software caused connection abort: socket write error 参考文章: (1)异常:Software caused connection abort ...
- github上传文件遇到错误:kex_exchange_identification: read: Software caused connection abort banner exchange:
问题场景 github上传文件时,连接不上ssh,输入ssh -T git@github.com,检查连接,出现以下错误: kex_exchange_identification: read: Sof ...
最新文章
- 阿里九峰:云计算开启的基础设施新时代
- linux操作小技巧
- android user版本默认开启调试模式
- 【Jmeter篇】jmeter Ant Jenkins接口自动化测试集成之半路逆转(二)
- 11-4实战上色及修复照片
- python爬虫---代理、Cookie、模拟登录古诗文网
- Java线程:新特征-原子量
- python自动出题_使用Python编写数独游戏自动出题程序
- No certificate for team ‘‘ matching ‘iPhone Distribution: VOVA TECH LIMITED ()‘ Select a different s
- ubantu 安装jekins
- 星际争霸 2 快捷键
- iOS小技能:设备ID除了使用_idfa、_idfv 还可使用其他替代方案(使用Keychain 存储UUID)
- #93 高精度除低精度
- 常用API、static、数组复制、双色球练习与酒店管理系统
- 视觉理解论文系列(一)——ERNIE-VIL
- SecureCRT 乱码问题
- 基于RSSI测距的多边定位法(附代码与讲解视频)
- iPad如何越狱?4.2.1完美越狱教程 二 (cydia 安装)
- ElasticSearch教程与实战:从搭建服务到Spring Boot整合
- 同一页面无法显示多个模态框的解决办法