访问内部网站,发现时间一长会报ECONNRESET错误,一开始以为是后端的正常报错,就去搜了一下,但是没查到主要原因,

后面查阅资料研究了一下, 实际上可能是会话时间过长,服务器关闭客户端的tcp链接的原因。

偶然和同事一起打开自己内部的测试平台,然后都发现了报错ECONNRESET,然后任何的接口都访问不出来,均以上这个报错。

我本地没有切换switchhost,也没有进行其他操作,原则上tcp的会话链接会一直存在,也不会掉线。(因为我重新又刷了n次页面)

查阅了资料,网上有个说法:

在长连接的前提下,服务端先于客户端关闭了 TCP,而客户端此时还未同步状态,所以存在一个错误的暂态(客户端认为 TCP 连接依然在,但实际已经销毁了)

因为会话也会存在使用时间,如果长时间不操作页面,服务器会提前断开与客户端的tcp链接,也就关闭了会话。

这是一个说法

网上资料情况总结

所以类似以下这些情况均有可能会发生报错ECONNRESET

客户端与服务端成功建立了长连接

  • 连接静默一段时间(无 HTTP 请求)
  • 服务端因为在一段时间内没有收到任何数据,主动关闭了 TCP 连接
  • 客户端在收到 TCP 关闭的信息前,发送了一个新的 HTTP 请求
  • 服务端收到请求后拒绝,客户端报错 ECONNRESET

在看我们今天情况,很有可能是第四点:服务端收到请求后拒绝,客户端报错 ECONNRESET。

服务端拒绝,在正常运行或者非偶然情况下有可能会拦截,那就得定位下服务器的问题

服务器 崩溃后重启的时候,因为之前的连接都无效了,所以 服务器 端会发送一个RST响应,此时客户端产生 ECONN RESET 错误!这就需要你在客户端重新连接了! 转载于: http s://www.cnblogs.com/happy-pm/p/3822302.html... 该错误被描述为“connection reset by peer”,即“对方复位连接”,这种情况一般发生在服务进程较客户进程提前终止。 给server回执函数添加了一个getchar(),强行阻塞进程结束。成功解决。 如果没有开系统代理 ,那就是wifi的问题,看看自己是否连接了公司的无线网或者是校园网,因为一般像这种企业级的wifi都会在顶部做一些防护手段来保证安全性,就比如说放置一些安全设备,这也是大家经常发现照着教程一步一步来的但是最后却总是失败的具体原因。但是蚁剑却连接不上,总是出现{"code":" ECONN RESET ","errno":" ECONN RESET ","syscall":"read"}这种 报错 ,甚至离谱的是有时候明明已经连接上了但还是会出现这种错误。网上给出的解决办法大概率大多数都是不管用的。 自己的一点理解: 1: Node.js提供的 Http Server默认设置了超时时间为2分钟,当一个请求的处理时间超过2分钟, Http Server会自动将该请求的socket关闭掉,于是客户端便收到了 ECONN RESET 的错误信息了。可以参考Node.js的源码。  postm... ECONN RESET 是linux环境 网络 编程产生的错误,错误码为104,WSA ECONN RESET 是windows环境 网络 编程产生的错误,错误码为10054 两者产生的原因都一样,分以下几种情况: - 接收端recv或者read, 对端已经关闭连接,recv/read返回该错误 - 对端重启连接,还未建立连接 - 发送端已经断开连接,但是调用send会触发这个错误   第二点第三点都... 有几次我的andorid客户端 报错 :IOException:java.net.SocketException: recvfrom failed: ECONN RESET (Connection reset by peer) 寻找解决方案,android相关原因: ok, the answer was that it's the server's fault - it had to close t ECONN RESET 是linux环境 网络 编程产生的错误,错误码为104, WSA ECONN RESET 是windows环境 网络 编程产生的错误,错误码为10054 两者产生的原因都一样,分以下几种情况: 1接收端recv或者read, 对端已经关闭连接,recv/read返回该错误 2 对端重启连接,还未建立连接 3 发送端已经断开连接,但是调用send会触发这个错误 第二点第三点都... page1: 假设Server A上面有Process X,它有一个socket M,和另外的Server B上面的Process Y的 Socket N以 TCP 协议连接上了,那么,据我所知,有2种情况会出现RST包: (1)X没有close socket就退出了,然后Y继续向M send数据,A的内核就会发送RST 到 socket N; (2)X设 但是host参数也会带来相应的风险即host注入问题,通常服务端会检测Host值并做相应的处理来防范这种风险,因此当要访问的域名和Host中上送的域名不一致时也不能理解服务端响应connection reset 错误了。背景:生产联调验收时,商户发送的 http 请求返回connection reset 错误。通过postman向生产环境直接发起请求看是否成功返回--成功。2.telnet、curl命令看服务端是否成功返回--成功。查看整个报文请求(包括报文头和报文体),1.抓包看双方是否成功建立连接--成功。