`
sunnylocus
  • 浏览: 876764 次
  • 性别: Icon_minigender_1
  • 来自: 美国图森
社区版块
存档分类
最新评论

java.net.SocketException: Software caused connection abort: recv failed 异常分析

    博客分类:
  • Java
阅读更多

java.net.SocketException: Software caused connection abort: recv failed
 at java.net.SocketInputStream.socketRead0(Native Method)
 at java.net.SocketInputStream.read(SocketInputStream.java:129)
 at java.net.SocketInputStream.read(SocketInputStream.java:182)

 

发生这个异常,从异常提示看是由于程序引起的,而非网络方面的原因,引发该异常的

场景之一:

  客户机<-->服务器,之间是由一个socket 长连接来通信,客户端有一个接收线程在while(true){..}循环里不停地从InputStream流中读数据,客户机每隔几秒钟发一次心跳包至服务端,如果连续未收到心跳包响应的次数已达到规定的次数,客户机认为此链路异常,将socket关闭,那么服务器会抛出java.net.SocketException: Connection reset by peer异常,然后分配给此socket连接的线程退出,那么客户端在while(true){..}循环,读取流时便会发java.net.SocketException: Software caused connection abort: recv failed异常。



0
0
分享到:
评论
10 楼 stream1990 2013-08-22  
是的,我就是你现在说的这个场景,可是你没说如何解决哇?
求解决方法
stream@v1lady.com
9 楼 yangbo1992 2012-07-13  
sunnylocus 写道
yangbo1992 写道
请问,这是怎么回事啊?
[12-7-12 12:57:42:373 CST] 00000023 SystemOut     O ERROR [WebContainer : 4] 12-07-12 12:57:42 <oracle.xml.xsql.XSQLErrorHandler> -- XML-25017: Unexpected Error Occurred
java.lang.RuntimeException: java.lang.Exception: {网络故障。}
    at com.csair.util.ibe.xsql.actions.AVQueryAction.handleAction(AVQueryAction.java:80)
    at oracle.xml.xsql.actions.XSQLExtensionActionHandler.handleAction(XSQLExtensionActionHandler.java:78)
    at oracle.xml.xsql.XSQLDocHandler.getDocument(XSQLDocHandler.java:158)
    at oracle.xml.xsql.XSQLPageProcessor.process(XSQLPageProcessor.java:171)
    at oracle.xml.xsql.XSQLServlet.doGet(XSQLServlet.java:61)

查询航班信息的时候出现这个。求解。

这是全部的异常信息吗?


嗯,能加qq聊??343567562
8 楼 sunnylocus 2012-07-12  
yangbo1992 写道
请问,这是怎么回事啊?
[12-7-12 12:57:42:373 CST] 00000023 SystemOut     O ERROR [WebContainer : 4] 12-07-12 12:57:42 <oracle.xml.xsql.XSQLErrorHandler> -- XML-25017: Unexpected Error Occurred
java.lang.RuntimeException: java.lang.Exception: {网络故障。}
    at com.csair.util.ibe.xsql.actions.AVQueryAction.handleAction(AVQueryAction.java:80)
    at oracle.xml.xsql.actions.XSQLExtensionActionHandler.handleAction(XSQLExtensionActionHandler.java:78)
    at oracle.xml.xsql.XSQLDocHandler.getDocument(XSQLDocHandler.java:158)
    at oracle.xml.xsql.XSQLPageProcessor.process(XSQLPageProcessor.java:171)
    at oracle.xml.xsql.XSQLServlet.doGet(XSQLServlet.java:61)

查询航班信息的时候出现这个。求解。

这是全部的异常信息吗?
7 楼 yangbo1992 2012-07-12  
请问,这是怎么回事啊?
[12-7-12 12:57:42:373 CST] 00000023 SystemOut     O ERROR [WebContainer : 4] 12-07-12 12:57:42 <oracle.xml.xsql.XSQLErrorHandler> -- XML-25017: Unexpected Error Occurred
java.lang.RuntimeException: java.lang.Exception: {网络故障。}
    at com.csair.util.ibe.xsql.actions.AVQueryAction.handleAction(AVQueryAction.java:80)
    at oracle.xml.xsql.actions.XSQLExtensionActionHandler.handleAction(XSQLExtensionActionHandler.java:78)
    at oracle.xml.xsql.XSQLDocHandler.getDocument(XSQLDocHandler.java:158)
    at oracle.xml.xsql.XSQLPageProcessor.process(XSQLPageProcessor.java:171)
    at oracle.xml.xsql.XSQLServlet.doGet(XSQLServlet.java:61)

查询航班信息的时候出现这个。求解。
6 楼 javaAlpha 2010-03-03  
方法:原因在于 Java现在对 IPv6 的支持很不好


卸载IPv6就好了。
在本地连接的“属性”中卸载。
5 楼 geniouc 2010-02-22  
sunnylocus 写道
geniouc 写道
我在一个socket连接里一直往服务器发送短信,隔一段时间会抛Connect Reset的异常。是因为服务器断断开了么?
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.net.SocketInputStream.read(SocketInputStream.java:182)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
发生异常后,我用socket.sendUrgentData方法,会报下面的异常:
java.net.SocketException: Connection reset by peer: send
at java.net.PlainSocketImpl.socketSendUrgentData(Native Method)
at java.net.PlainSocketImpl.sendUrgentData(PlainSocketImpl.java:541)
at java.net.Socket.sendUrgentData(Socket.java:923)

服务器收到短信后,有没有给客户机返回一个应答?看异常信息是服务器在接收客户机数据流时连接被重置了。服务器还没有全部接收完数据流时客户端关闭了输出流或着socket


客户端只是一直在发送和接受数据,会不会因为服务器承载能力有限,在繁忙时就断开了连接,或者抛出了连接超时的错误。。
4 楼 sunnylocus 2010-02-04  
yibosheng 写道
求解决办法。

用长连接方式,socket建立时该连接不断开,在网络空闲时由客户端发心跳包维持连接。
3 楼 yibosheng 2010-02-04  
求解决办法。
2 楼 sunnylocus 2010-02-02  
geniouc 写道
我在一个socket连接里一直往服务器发送短信,隔一段时间会抛Connect Reset的异常。是因为服务器断断开了么?
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.net.SocketInputStream.read(SocketInputStream.java:182)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
发生异常后,我用socket.sendUrgentData方法,会报下面的异常:
java.net.SocketException: Connection reset by peer: send
at java.net.PlainSocketImpl.socketSendUrgentData(Native Method)
at java.net.PlainSocketImpl.sendUrgentData(PlainSocketImpl.java:541)
at java.net.Socket.sendUrgentData(Socket.java:923)

服务器收到短信后,有没有给客户机返回一个应答?看异常信息是服务器在接收客户机数据流时连接被重置了。服务器还没有全部接收完数据流时客户端关闭了输出流或着socket
1 楼 geniouc 2010-02-02  
我在一个socket连接里一直往服务器发送短信,隔一段时间会抛Connect Reset的异常。是因为服务器断断开了么?
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.net.SocketInputStream.read(SocketInputStream.java:182)
at java.io.DataInputStream.readInt(DataInputStream.java:353)
发生异常后,我用socket.sendUrgentData方法,会报下面的异常:
java.net.SocketException: Connection reset by peer: send
at java.net.PlainSocketImpl.socketSendUrgentData(Native Method)
at java.net.PlainSocketImpl.sendUrgentData(PlainSocketImpl.java:541)
at java.net.Socket.sendUrgentData(Socket.java:923)

相关推荐

    java.net.SocketException: No route to host 异常原因

    NULL 博文链接:https://zhoudan241.iteye.com/blog/1432014

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法

    JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES解决方法 JAVA.NET.SOCKETEXCEPTION TOO MANY OPEN FILES错误是一种常见的网络编程错误,发生在Java应用程序中, especialmente 在 Linux 操作系统中。该错误的出现是...

    java.net.SocketException Connection reset 解决方法

    "java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...

    在Win7系统下抛出java.net.SocketException的解决办法

    - **SocketException**: 当尝试在网络层面上建立连接时,如果无法识别到有效的IPv4地址,将会抛出`java.net.SocketException`异常。在本例中,错误代码“0”表示无法找到与网络接口关联的IPv4地址。这种情况通常发生...

    java.net.SocketException: Connection reset 解决方法

    Java中的`java.net.SocketException: Connection reset`是一个常见的网络编程错误,通常表示在TCP/IP通信过程中,连接突然中断。这个异常可能在客户端或服务器端发生,通常与数据传输的异常中断有关。 首先,我们来...

    http接口调用报错.rar

    接口调用报错:java.net.SocketException: java.lang.ClassNotFoundException: Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory

    Linux下打开的文件过多错误

    Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:

    Java Socket常见异常处理

    4. **java.net.SocketException: (Connection reset 或 Connect reset by peer: Socket write error)** 这两种异常都表示连接已断开。可能的原因是一端关闭了Socket,而另一端仍在尝试读写。处理这类异常需要检测到...

    connection reset解决方案(亲测可用).md

    connection reset解决方案(亲测可用).md

    fastdfs使用java

    在Java中使用FastDFS,首先需要在项目中引入FastDFS的Java客户端库。配置client.conf文件,设置tracker服务器的地址和其他相关参数。接着创建FastdfsClient和FastdfsUtil类,前者用于与FastDFS服务器通信,后者封装...

    Ice-3.7.4.msi for windows版

    Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574) at ...

    Google I/O 2013推荐Android 网络通信框架Volley

    5. **错误处理**:Volley提供了一套完整的错误处理机制,包括重试策略和错误回调,可以帮助开发者更好地理解和处理网络异常。 6. **强大的请求类型**:Volley支持GET、POST等多种HTTP方法,还可以处理HTTP头和POST...

    java.net.SocketException(解决方案).md

    项目中碰到的,记录一下解决方案

    Socket长连接异常处理

    java.net.SocketException: Connection reset by peer: Socket write error 该异常可能发生在客户端和服务器端,原因是因为一端的 Socket 被关闭,而另一端继续发送数据。解决方法是确保在关闭连接前完成所有的数据...

    Hive2Hive-master.rar

    Hive是Apache软件基金会开发的一个开源大数据处理框架,它基于Hadoop,主要用于存储、管理和分析大规模数据集。下面我们将详细探讨Socket与Hive数据同步的相关知识点。 1. **Socket基础**: Socket是网络通信中的...

    如何解决线程太多导致java socket连接池出现的问题

    3. 错误信息:当Socket连接池出现问题时,可能会出现错误信息,如"java.net.SocketException: No buffer space available (maximum connections reached?): listen failed"。 解决方法 要解决线程太多导致Socket...

    System.SR.dll 无法显示错误信息

    System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ---&gt; System.Net.Sockets.SocketException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集 ...

    java中的connection reset 异常处理分析

    在Java编程中,"connection reset"异常通常表示网络连接在数据传输过程中突然中断,这可能是由多种原因导致的。在本文中,我们将深入探讨这种异常的处理和分析,特别是与Java中的Socket通信相关的方面。 首先,`...

    C# 服务器发送邮件失败实例分析

    错误展示: 我在本地是可以发送的但部署到服务器上后就不能...分析: 邮件发送相关端口 首先说下邮件发送的端口:25/465/587 25端口 25端口是为SMTP协议服务开放的,是这三个端口中最老的一个。25端口也称为消息中继端

Global site tag (gtag.js) - Google Analytics