`

导致java.net.SocketException: Connection reset 的原因

 
阅读更多
原文地址:http://blog.sina.com.cn/s/blog_4b6f8d1501017tqa.html



第1个异常是java.net.BindException:Address already in use: JVM_Bind。该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时。异常的原因是以为与port一样的一个端口已经被启动,并进行监听。此时用netstat –an命令,可以看到一个Listending状态的端口。只需要找一个没有被占用的端口就能解决这个问题。

第2个异常是java.net.ConnectException: Connection refused: connect。该异常发生在客户端进行new Socket(ip, port)操作时,该异常发生的原因是或者具有ip地址的机器不能找到(也就是说从当前机器不存在到指定ip路由),或者是该ip存在,但找不到指定的端口进行监听。出现该问题,首先检查客户端的ip和port是否写错了,如果正确则从客户端ping一下服务器看是否能ping通,如果能ping通(服务服务器端把ping禁掉则需要另外的办法),则看在服务器端的监听指定端口的程序是否启动,这个肯定能解决这个问题。

第3个异常是java.net.SocketException: Socket is closed,该异常在客户端和服务器均可能发生。异常的原因是己方主动关闭了连接后(调用了Socket的close方法)再对网络连接进行读写操作。

第4个异常是java.net.SocketException: (Connection reset或者Connect reset by peer:Socket write error)。该异常在客户端和服务器端均有可能发生,引起该异常的原因有两个,第一个就是如果一端的Socket被关闭(或主动关闭或者因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。另一个是一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。

第5个异常是java.net.SocketException: Broken pipe。该异常在客户端和服务器均有可能发生。在第4个异常的第一种情况中(也就是抛出SocketExcepton:Connect reset by peer:Socket write error后),如果再继续写数据则抛出该异常。前两个异常的解决方法是首先确保程序退出前关闭所有的网络连接,其次是要检测对方的关闭连接操作,发现对方关闭连接后自己也要关闭该连接。


http://bbs.csdn.net/topics/340021801
http://www.jb51.net/article/34888.htm
分享到:
评论

相关推荐

    java.net.SocketException Connection reset 解决方法

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

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

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

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

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

    Java Socket常见异常处理

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

    Socket长连接异常处理

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

    javaerror处理资料

    java.net.SocketException: Connection reset by peer: Socket write error 此异常通常出现在客户端尝试向服务器写入数据时突然断开连接的情况。这种现象的原因可能是远程服务器突然关闭了连接,或者客户端发送的...

    java中的connection reset 异常处理分析

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

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

    2. **线程管理**:Volley通过一个线程池来管理网络请求,将网络操作与主线程分离,避免了因网络请求阻塞UI导致的卡顿现象。同时,Volley还提供了智能调度策略,可以根据网络状况和任务优先级进行适当的调整。 3. **...

    ssh2必须的包(这是第二部分)

    4. **mysql-connector-java-5.1.10-bin.jar** - MySQL数据库的Java驱动,用于连接Java应用程序与MySQL数据库。在SSH2场景中,可能用于存储和检索用户认证信息或其他系统配置数据。 5. **javassist-3.12.0.GA.jar** ...

    java的常见问题及解决方法定义.pdf

    出现“java.net.SocketException: Connection reset”错误通常表示远程服务器关闭了连接。这可能在读取或写入数据时发生。检查服务器状态,确保网络连接稳定,同时在代码中处理异常,优雅地处理这种情况。 在开发...

    java的常见问题及解决方法参照.pdf

    遇到"java.net.SocketException: Connection reset"错误,通常是因为服务器端关闭了连接。这可能发生在读取或写入数据时。解决这个问题通常需要检查服务器端代码,确保其不会在数据传输期间意外关闭连接。 这些是...

    Nebula 异常情况记录1

    在处理Graph500数据集的K-hop neighbor(5/6度)查询时,TTransportException异常被触发,伴随有"java.net.SocketException: Connection reset"的错误信息。这通常意味着服务器主动关闭了连接,可能是由于资源耗尽、...

    java常见异常汇总

    `java.net.SocketException`: Connection reset **异常描述**:在使用 Socket 进行网络通信时,可能会遇到连接被远程主机关闭的情况。 **原因分析**:当远程主机突然关闭连接或者发生网络故障时,会抛出此类异常...

Global site tag (gtag.js) - Google Analytics