问题描述:服务器端执行完send()后调用close()关闭socket,然后exit()正常退出。客户端read()函数返回-1,errno104 :   Connection reset by peer,查了一下原因:

这意味着收到了TCP RST包,可以使用tcpdump + wireshark抓包分析,并且连接现在已经关闭,这种情况可能是因为对方崩溃,或者对方调用了close()函数。

解决方法:只要TCP栈的读缓冲里还有未读取(read)数据,则调用close时会直接向对端发送RST。服务器在调用close()函数前,调用shutdown(socket, 2),先关闭socket的读写功能,这时会向客户端发送FIN包,客户端收到FIN包时read()正常返回0,可以完全读取缓冲数据,问题解决。

close()和shutdown()的区别:

请参考:https://blog.csdn.net/xyyaiguozhe/article/details/30252559

c语言read()返回-1,errno:Connection reset by peer相关推荐

  1. [Python] ConnectionResetError: [Errno 104] Connection reset by peer

    python socket 编程,sftp远程读日志文件,取最后的30行返回.收到ConnectionResetError: [Errno 104] Connection reset by peer报 ...

  2. python [Errno socket error] [Errno 104] Connection reset by peer

    python [Errno socket error] [Errno 104] Connection reset by peer 原因可能是多方面的,不过更常见的原因是: ①:服务器的并发连接数超过了 ...

  3. (20200921 Solved)ConnectionResetError: [Errno 104] Connection reset by peer

    问题描述 用Python连接docker容器中的Redis 预备知识 [Errno 104] Connection reset by peer errno 104表示对一个对端socket已经关闭的连 ...

  4. <urlopen error [Errno 104] Connection reset by peer>

    使用python写一个脚本调用接口时,报了这个错,在"urllib.request.urlopen(req, context=context)"这个方法中报错. 错误原因 发送的r ...

  5. python httplib [Errno 104] Connection reset by peer问题

    写了一个简单的http client 方法,代码如下 import httplib import json from common.logger import sys_loggerdef http_r ...

  6. ConnectionResetError: [Errno 104] Connection reset by peer

    Python代码使用循环发起网络请求,发起单个没有问题,发起多个请求,就会报错 ConnectionResetError: [Errno 104] Connection reset by peer 可 ...

  7. Connection reset by peer (秒懂)

    疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 面试必备 + 面试必备 [博客园总入口 ] 疯狂创客圈 经典图书 : <Sprin ...

  8. error connection reset by peer 104

    connection reset by peer的常见原因 1.服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭: 2. errno = 104错误表明你在对一个对端socket已经关闭的 ...

  9. Tomcat:Connection reset by peer: socket write error

    Connection reset by peer: socket write error错误分析及解决 Connection reset by peer: socket write error错误分析 ...

最新文章

  1. vue2 切换路由时 页面滚动到顶部 用游览器返回时 记住上页的位置
  2. 【带你重拾Redis】Redis 主从架构
  3. css3关键帧动画以及兼容性策略
  4. GMM(Gaussian mixture model, 高斯混合模型)
  5. C与C++的内存机制的比较
  6. Codeforces Round #736 (Div. 2) D. Integers Have Friends ST表gcd + 尺取
  7. memcached命令行、Memcached数据导出和导入、php连接memcache、php的session存储到memcached...
  8. (原创)C++ IOC框架
  9. java ajax返回数组_js对ajax返回数组的处理介绍
  10. AndroidStudio使用Git,Commit、Push代码到GitLab权限失败问题
  11. 历代iPhone主要参数对比,更新于2022年03月
  12. ue4风格化材质_在UE4中制作风格化场景:Bird House_资源库
  13. CSS布局:多种方案实现固定页脚(sticky footer)
  14. 【疑难解决】H265编码流媒体播放器EasyPlayer.js播放HLS H265视频流,遇到黑屏如何排查?
  15. 从东京奥运会看js设计模式之发布订阅模式
  16. [Tool] 仿博客园插入代码的 WLW 插件
  17. 《成语接龙》隐私说明
  18. python爬取网站数据(含代码和讲解)
  19. Octree(八叉树)
  20. 走近门球运动·体育项目

热门文章

  1. 给微信5.0泼凉水:社交+电商难落地
  2. 计算机组成原理模型机设计实验总结,计算机组成原理课程设计实验报告-基本模型机设计与实现.docx...
  3. float和eval在python中的意思_Python3中,eval和float有什么区别
  4. 实习期间遇到问题和解决方法
  5. 苏黎世新研究:人工智能探测暗物质【智能快讯】
  6. 亲,你今天“神聊”了吗?
  7. python五子棋游戏_python小项目之五子棋游戏
  8. 彩虹云秒赞首页模板 星辰美化
  9. 实现微信转发朋友圈和微信好友
  10. linux内核usb驱动框架,基于S3C2440平台的linux2.6.22内核版本的USB驱动框架分析