TCP 四次握手

产生SIGPIPE的原因

SIGPIPE信号产生的原因:
简单来说,就是客户端程序向服务器端程序发送了消息,然后关闭客户端,服务器端返回消息的时候就会收到内核给的SIGPIPE信号。
TCP的全双工信道其实是两条单工信道,client端调用close的时候,虽然本意是关闭两条信道,但是其实只能关闭它发送的那一条单工信道,还是可以接受数据,server端还是可以发送数据,并不知道client端已经完全关闭了。
以下为引用:
”’对一个已经收到FIN包的socket调用read方法, 如果接收缓冲已空, 则返回0, 这就是常说的表示连接关闭. 但第一次对其调用write方法时, 如果发送缓冲没问题, 会返回正确写入(发送). 但发送的报文会导致对端发送RST报文, 因为对端的socket已经调用了close, 完全关闭, 既不发送, 也不接收数据. 所以, 第二次调用write方法(假设在收到RST之后), 会生成SIGPIPE信号, 导致进程退出.”’

RST报文:
以下几种情况会产生RST
1)CLOSE状态的socket收到任何数据都会返回RST,即为我遇到的情况
其他参见RFC793 tcp协议

解决方法

#include <signal.h>
void handle_pipe(int sig)
{
//do nothing
}
int main()
{struct sigaction sa;sa.sa_handler = handle_pipe;sigemptyset(&sa.sa_mask);sa.sa_flags = 0;sigaction(SIGPIPE,&sa,NULL);
//do something
}

Linux SIGPIPE信号产生原因与解决方法相关推荐

  1. 戴尔t420服务器显示器无信号,显示器无信号的原因及解决方法

    显示器无信号的原因及解决方法 经常有朋友会遇到显示器无信号的情况,相比显示器没有任何显示而言,显示器无信号电脑故障其实更容易解决.为什么这么说呢?下面小编给大家整理了显示器无信号的原因及解决方法,供大 ...

  2. 三星手机没有信号网络连接到服务器,手机没信号的原因以及解决方法

    现在手机是一件很普遍的通讯工具,因为现在手机功能的强大,所以基本上人人一部手机.目前在社会上比较流行的牌子就是苹果或者三星手机.不过想必大家在用手机的时候都会出现手机没有信号这个问题.这个问题是一件比 ...

  3. linux无线网卡连接不稳定怎么办,无线网络信号不稳定的四种原因及解决方法

    宽带路由器在一个紧凑的箱子中集成了路由器.防火墙.带宽控制和管理等功能,具备快速转发能力,灵活的网络管理和丰富的网络状态等特点.在使用无线网络过程中,无线网络信号不稳定,忽强忽弱是大家经常遇到的问题, ...

  4. linux服务器出现黄,linux服务器出现严重故障后的原因以及解决方法

    linux服务器出现严重故障后的原因以及解决方法 发布时间:2011-11-24 16:32:18   作者:佚名   我要评论 linux服务器出现严重故障后的解决方法,本文为大家介绍四个步骤解决l ...

  5. Linux系统盘爆满根目录100%,又找不到占空间的大文件 原因与解决方法

    最近一位朋友他的Linux(Centos7)根目录一直100%,也就是系统文件磁盘已经爆满了.虽然通过:df -h, du -sh * 等指令配合使用,发现当前系统任然存在大量可以使用的空间(6.5G ...

  6. win7计算机名怎么是感叹号,Win7连接wifi信号后出现感叹号三种原因和解决方法

    Win7系统电脑连接网络上网的方式有很多种,比如拨号.无线wifi.网卡等等,有时候网络也会出现故障问题.这不Win7连接wifi出现感叹号,并且提示有限的访问权限,且无法上网.有什么办法能解决,让w ...

  7. win7计算机名怎么是感叹号,Win7系统wifi信号后出现感叹号怎么办 Win7连接wifi后出现感叹号三种原因和解决方法...

    Win7连接wifi出现感叹号,并且提示有限的访问权限,且无法上网.有什么办法能解决,让win7系统能够正常连接网络呢?针对Win7连接wifi信号后出现感叹号的问题,下面脚本之家的小编给大家讲解具体 ...

  8. linux 下搭建yolov3错误,yolov3---报段错误的可能原因及解决方法

    参考: ************************************************************************************************ ...

  9. 笔记本独显无输出_独立显卡无信号输出_电脑检测不到独立显原因及解决方法...

    独立显卡无信号输出 电脑插上独立显卡没有信号,但是能听到进入系统的声音,主板开机也能自检,就是没有信号输出!主板也检测不到有显卡插到卡槽上.显卡风扇是转的.把接口换到集成显卡可以显示画面.把独立显卡插 ...

最新文章

  1. go 实现斐波那契数列
  2. 蓝桥杯-合并石子(java)
  3. IT项目管理不能犯的错误
  4. python web开发项目 源码_真零基础Python开发web
  5. js运算符+运算方式
  6. flex(入门)之timer的使用,键盘,鼠标的监听
  7. Windows 10半年成全球第二!中国悲剧了
  8. 拓端tecdat|图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
  9. PostGIS导入shp数据
  10. HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)
  11. JAVA调用U盾进行客户认证实例
  12. 机器学习应用——导学part
  13. JQuery获取文件大小
  14. GIS是个什么鬼,真的开眼了。感谢好学生的奉献。
  15. Unity3d优化总结2
  16. sklearn多分类任务自定义cv交叉验证scoring
  17. 蓝牙5.0跟蓝牙4.2的区别
  18. 查询期刊是不是SCI或EI
  19. 博学谷java百度网盘_博学谷javaee就业班2020百度云
  20. Python实现对哈利波特小说单词统计

热门文章

  1. 在卓越网上买了几本书
  2. office word 2007 无法打开 .doc
  3. 关于poi解析word 2007版docx问题
  4. centos 6.8下载地址
  5. 御坂美琴(入门bfs+STL)
  6. java黑电脑_个人电脑防黑设置
  7. Java详解WebService技术
  8. PyQt5系列教程(四)使用py2exe进行程序打包
  9. 30秒制作幻灯片 Cleaver
  10. ICETIS会议分会场来啦!EI检索 | 出版检索快速稳定