转自:https://blog.csdn.net/xc_zhou/article/details/80950753html
1,若是一端的Socket被关闭(或主动关闭,或由于异常退出而 引发的关闭),另外一端仍发送数据,发送的第一个数据包引起该异常(Connect reset by peer)。java
Socket默认链接60秒,60秒以内没有进行心跳交互,即读写数据,就会自动关闭链接。浏览器
2,一端退出,但退出时并未关闭该链接,另外一端若是在从链接中读数据则抛出该异常(Connection reset)。缓存
简单的说就是在链接断开后的读和写操做引发的。服务器
Connection reset by peer的常见缘由:网络
1)服务器的并发链接数超过了其承载量,服务器会将其中一些链接关闭;
若是知道实际链接服务器的并发客户数没有超过服务器的承载量,则有多是中了病毒或者木马,引发网络流量异常。可使用netstat -an查看网络链接状况。
2)客户关掉了浏览器,而服务器还在给客户端发送数据;
3)浏览器端按了Stop;
这两种状况通常不会影响服务器。可是若是对异常信息没有特别处理,有可能在服务器的日志文件中,重复出现该异常,形成服务器日志文件过大,影响服务器的运行。能够对引发异常的部分,使用try…catch捕获该异常,而后不输出或者只输出一句提示信息,避免使用e.printStackTrace();输出所有异常信息。
4)防火墙的问题;
若是网络链接经过防火墙,而防火墙通常都会有超时的机制,在网络链接长时间不传输数据时,会关闭这个TCP的会话,关闭后在读写,就会致使异常。 若是关闭防火墙,解决了问题,须要从新配置防火墙,或者本身编写程序实现TCP的长链接。实现TCP的长链接,须要本身定义心跳协议,每隔一段时间,发送一次心跳协议,双方维持链接。
5)JSP的buffer问题。
JSP页面缺省缓存为8k,当JSP页面数据比较大的时候,有可能JSP没有彻底传递给浏览器。这时能够适当调整buffer的大小。并发
第1个异常是java.net.BindException:Address already in use: JVM_Bind。.net
该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操做时。异常的缘由是觉得与port同样的一个端口已经被启动,并进行监听。此时用netstat –an命令,能够看到一个Listending状态的端口。只须要找一个没有被占用的端口就能解决这个问题。日志
第2个异常是java.net.ConnectException: Connection refused: connect。htm
该异常发生在客户端进行 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后),若是再继续写数据则抛出该异常。前两个异常的解决方法是首先确保程序退出前关闭全部的网络链接,其次是要检测对方的关闭链接操做,发现对方关闭链接后本身也要关闭该链接。
客户端错误代码10053 Software caused connection abort(软件缘由致使链接中断)
参考:https://blog.csdn.net/candyguy242/article/details/25699727http://www.360doc.com/content/13/0722/10/11220452_301678390.shtml