30. Socket下载时,服务器端出错: len=10240 count=115 len=10240 count=116 len=7168 count=last java.net.SocketExc

本文详细解析了Socket编程中出现的Connection reset by peer错误的原因及解决办法。主要从客户端与服务器交互的角度探讨了常见问题,包括并发连接数超过承载量、客户端异常关闭连接等情况,并提供了系统调优和使用商业Web Server的建议。

问题:

30. Socket下载时,服务器端出错:

len=10240 count=115

len=10240 count=116

len=7168 count=last

java.net.SocketException: Connection reset by peer: socket write error

at java.net.SocketOutputStream.socketWrite0(Native Method)

at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)

at java.net.SocketOutputStream.write(SocketOutputStream.java:147)

at com.myandroid.download.server.SocketService.run(SocketService.java:61)

at java.lang.Thread.run(Thread.java:744)

解决办法:

1,一般是有些客户端已关闭,一些线程因为延迟等原因觉察不到此连接已结束,继续等到到出错

2,客户端那里不停刷或一个访问/刷新没完成前再刷,要让这个无用的线程死掉

3,这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的停止按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题。

4, 这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的停止按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题   

5,可能你的网络连接存在一些问题,你的数据传输的时候,可能由于时间等待的太久,但是server段设置的连接检验时间限制一定,那么就可能出现这种情况的!

6,不过更常见的原因是:
1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
2:客户关掉了浏览器,而服务器还在给客户端发送数据;
3:浏览器端按了Stop
4:服务器给客户端响应结果给防火墙拦截了。

7,我又查了一些资料,原因如下:
    非程序问题,一般是由于与客户端连接中断所致,没有太有效的办法解决。但是可以通过系统调优等手段提高系统吞吐量,减少部分因延迟而中断的连接。

    一般免费的Web Server,如Tomcat对长期积累的IO错误解决不完善,会导致迟缓,甚至挡掉。所以,如果你的网站(或系统)访问量较大或至少又一段时间集中访问量大,一定要留意这个问题,因为它可能会使你的系统停滞。

    建议:1、提高系统性能 2、有条件的话换用商业WebServerweblogic

 

问题分析:常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是:  
①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;  
②:客户关掉了浏览器,而服务器还在给客户端发送数据;  
③:浏览器端按了Stop  

通 常原因为:远程主机上对等方应用程序突然停止运行,或远程主机重新启动,或远程主机在远程方套接字上使用了“强制”关闭 (参见setsockopt(SO_LINGER))。另外,在一个或多个操作正在进行时,如果连接因“keep-alive”活动检测到一个失败而中 断,也可能导致此错误。此时,正在进行的操作以错误码WSAENETRESET失败返回,后续操作将失败返回错误码WSAECONNRESET。
但是如果频繁出现,就表示很 多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值