connection reset by peer, socket write error

上网查询得到以下内容,记录一下。

原因
1、服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉
2、客户关掉了浏览器,而服务器还在给客户端发送数据
3、浏览器端按了Stop

网络状况挺好(测试环境),跟浏览器也没关系。

问题出在服务端上
服务端是这么处理的:上传文件时在header里含有了文件信息,上传文件成功,记录文件相关信息在DB;如果再次上传这个文件,根据header的文件信息在DB判断是否已经上传,如果确认是重复文件,则直接返回“文件重复”。(这个业务设计有点bug,暂时忽略)

但是现在却遇到重复上传时,客户端httpclient报了“connection reset by peer, socket write error”的错误。

是由于在重复上传时,服务端只取了header就判断了文件重复直接response了,这个时候客户端还在“欢快”的传输文件呢,而服务端直接response把连接关闭了,所以客户端就懵逼了,报了错误。

这个问题暂时还没有找到技术上如何解决,所以在业务上进行解决的。
在客户端遇到SocketException时,尝试重新上传前,先查询服务端是否已经完成了此文件的上传,如果已经存在,则不用重复上传了,也就可以避免因为重复上传导致的问题,毕竟重复上传也是为了保证在网络不佳时能补偿。

又查询到其他相关解释:
1、连接池连接没有释放就被第二个线程拿来用了
2、网络原因
解决方法:
1、检查DB配置和连接池配置
2.检查数据库连接模块代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值