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()返回的值是非堵塞的,可以被多个线程访问
在对方释放连接后,也要释放本地的连接.
- 浏览: 4935592 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (2844)
- java (1094)
- hadoop (37)
- jvm (39)
- hbase (11)
- sql (25)
- 异常 (83)
- div css (6)
- 数据库 (95)
- 有趣的code (15)
- struts2 (6)
- spring (124)
- js (44)
- 算法 (65)
- linux (36)
- hibernate (7)
- 中间件 (78)
- 设计模式 (2)
- 架构 (275)
- 操作系统 (91)
- maven (35)
- tapestry (1)
- mybatis (9)
- MQ (101)
- zookeeper (18)
- 搜索引擎,爬虫 (208)
- 分布式计算 (45)
- c# (7)
- 抓包 (28)
- 开源框架 (45)
- 虚拟化 (12)
- mongodb (15)
- 计算机网络 (2)
- 缓存 (97)
- memcached (6)
- 分布式存储 (13)
- scala (5)
- 分词器 (24)
- spark (104)
- 工具 (23)
- netty (5)
- Mahout (6)
- neo4j (6)
- dubbo (36)
- canal (3)
- Hive (10)
- Vert.x (3)
- docker (115)
- 分布式追踪 (2)
- spring boot (5)
- 微服务 (56)
- 淘客 (5)
- mesos (67)
- php (3)
- etcd (2)
- jenkins (4)
- nginx (7)
- 区块链 (1)
- Kubernetes (92)
- 驾照 (1)
- 深度学习 (15)
- JGroups (1)
- 安全 (5)
- 测试 (16)
- 股票 (1)
- Android (2)
- 房产 (1)
- 运维 (6)
- 网关 (3)
最新评论
-
明兜3号:
部署落地+业务迁移 玩转k8s进阶与企业级实践技能(又名:Ku ...
Kubernetes系统常见运维技巧 -
q328965539:
牛掰啊 资料收集的很全面
HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS) -
guichou:
fluent挂载了/var/lib/kubelet/pods目 ...
kubernetes上部署Fluentd+Elasticsearch+kibana日志收集系统 -
xu982604405:
System.setProperty("java.r ...
jmx rmi 穿越防火墙问题及jmxmp的替代方案 -
大漠小帆:
麻烦问下,“获取每个Item相似性最高的前N个Item”,这个 ...
协同过滤推荐算法在MapReduce与Spark上实现对比
发表评论
-
kafka运行过程中localhost.localdomain: 未知的名称或服务
2017-11-22 19:37 2313kafka运行过程中出现了java.net.UnknownH ... -
protocol 实体变动修改报错
2017-09-20 17:10 2293java.lang.IllegalStateExceptio ... -
用 nginx 反代一个域名,域名 dns 变更后 nginx 返回 504
2017-08-23 19:08 1333用域名 www.abc.com 反代 www.abcd.co ... -
Errors occurred during the build. Errors running builder 'Maven Project Builder'
2017-08-06 15:28 2070前几天项目还好好的,今天重装系统导入maven项目,报错,原 ... -
com.dyuproject.protostuff.ProtobufException: Protocol message contained an inval
2017-08-05 22:38 2392log4j:WARN No appenders could ... -
dubbo 接口 序列化问题
2017-06-16 15:29 2611java.lang.ClassNotFoundExcepti ... -
Error starting daemon: layer does not exist
2017-06-02 14:52 3122#systemctl status docker.servi ... -
Spark执行样例报警告:WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any
2017-05-25 10:26 1719搭建Spark环境后,调测Spark样例时,出现下面的错误: ... -
如何解决java.lang.SecurityException: Invalid signature file digest for Manifest main
2017-05-11 16:14 3431<plugin> ... -
k8s 异常
2017-03-02 17:02 1397Error syncing pod, skipping: ... -
docker
2017-02-20 13:36 4911、Error running DeviceCreate ... -
windows 下 shared zone xxx has no equal addresses
2016-11-27 00:23 1640在windows下启动nginx出现错误 shared zo ... -
mvn 运行 jetty
2016-06-30 15:53 2423[ERROR] Failed to execute goal ... -
Communications link failure的解决办法
2016-06-01 10:15 26895使用Connector/J连接MySQL数据库,程序运 ... -
线程池超时异常
2016-05-29 19:58 950public void execute2(){ ... -
maven 版本问题
2016-04-28 17:49 1028<dependency> ... -
maven 打包执行异常
2016-04-04 13:36 864解决: <filters> < ... -
深入JDK源代码之Arrays类中的排序查找算法
2016-03-28 10:55 632java.util.Arrays类。这个类是个数组工具类。主 ... -
spring 事物多线程问题
2015-12-12 18:03 3896Dec 12, 2015 4:46:04 PM com.a ... -
jdk bug
2015-12-12 15:53 769# # If you would like to subm ...
相关推荐
Caused by: android.system.ErrnoException: write failed: ENOSPC (No space lef
解决TestNG单元测试报错Software caused connection abort: socket write error
我真的佛了,我把电脑都重装系统了,没想到还是有问题,最终我找到了解决方案。 (我指的重装系统就是win10自带的功能,可能...Network error: Software caused connection abort 原创文章 6获赞 8访问量 726 关注
主要介绍了oracle常见故障及规划解析,小编觉得还是不错的,这里分享给大家,供需要的朋友参考。
NavicatPremium 最新版下载安装文件,解决ssl连接失败问题
Caused by: java.net.UnknownHostException: openapi.alipay.com
天喻软件:颠覆CAD.pdf
专题资料
Caused by: java.lang.OutOfMemoryError: PermGen space解决方案, avax.servlet.ServletException: java.lang.OutOfMemoryError: PermGen space at org.apache.jasper.servlet.JspServlet.service(JspServlet.java...
JAVAHttpClientThe server failed to respond with a validCaused by: org.apache.htt
异常:Caused by: java.lang.IllegalStateException: Method has too many Body parameters Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract ...
连接服务器失败(错误原因:Connection refused) error 111 抓包结果
主要介绍了java.net.ConnectException: Connection refused问题解决办法的相关资料,需要的朋友可以参考下
Android Caused by: java.lang.ClassNotFoundException解决办法 出现问题: 08-13 18:29:22.924: E/AndroidRuntime(1875): Caused by: Java.lang.ClassNotFoundException:XXXXX in loader dalvik.system....
android Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated 97/100 android Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address ...
主要介绍了Caused by: android.os.NetworkOnMainThreadException错误解决办法,本文提供了2种解决方法,需要的朋友可以参考下
主要介绍了Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Caused by: org.jboss.as.controller.client.helpers.domain.UpdateFailedException: "WFLYDC0022: Operation failed or was rolled back on all servers." 查看此文件末尾的完整堆栈跟踪更有趣的日志来自主机控制...