日期:2014-05-20  浏览次数:20990 次

SocketException Connection reset
问题描述如下:
目标地址 221.111.10.1 10010
telnet 目标端口是通的
Socket连接目标端口 10010 ,已经连接成功。但是发送信息到目标端口,然后读取返回信息的时候提示 SocketException Connection reset。

环境是unix环境。程序在自己电脑windows好运行是正常的。但是部署到unix环境后就出现上述Connection reset。
unix环境有两层防火墙,做的策略都是一样的。而且我们测试telnet目标端口都是通过的。
有没有人,能够提供一下思路,告诉一下我应该怎么定位问题。问题出在哪一步。
坐等高手,提供检查思路。

------解决方案--------------------
java.net.SocketException: Connection reset。
该异常在客户端和服务器端均有可能发生,引起该异常的原因有两个,第一个就是如果一端的Socket被关闭(或主动关闭或者因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。另一个是一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的
------解决方案--------------------
照着原因 你再仔细排查下
------解决方案--------------------
产看流是否正常关闭。
------解决方案--------------------
把你流处理的那段代码发来看看吧,客户端服务器端
------解决方案--------------------
IP地址没有变动吗?
------解决方案--------------------
引用:
java.net.SocketException: Connection reset。
该异常在客户端和服务器端均有可能发生,引起该异常的原因有两个,第一个就是如果一端的Socket被关闭(或主动关闭或者因为异常退出而引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。另一个是一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的

不外乎楼上的情况