java.net.SocketException: Connection reset 问题分析

 

1. socket编程时容易碰到如下异常:

java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:132)
at com.socket.SocketClient.main(SocketClient.java:28)

 

2.原因分析:

该java异常在客户端和服务器端都有可能发生,引起该异常的原因有两个:

1) 如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。

2) 一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。

posted @ 2018-09-18 10:45  panchanggui  阅读(5244)  评论(0编辑  收藏  举报