码迷,mamicode.com
首页 > 其他好文 > 详细

SIGPIPE

时间:2015-05-20 22:14:26      阅读:753      评论:0      收藏:0      [点我收藏+]

标签:

看到很多网络程序都有一段忽略SIGPIPE信号的处理,故总结一下。

第一次对其disconnected socket调用write方法时, 如果发送缓冲没问题, 会返回正确写入(发送). 但发送的报文会导致对端发送RST报文, 因为对端的socket已经调用了close, 完全关闭, 既不发送, 也不接收数据. 所以, 第二次调用write方法(假设在收到RST之后), 会生成SIGPIPE信号, 导致进程退出.

write调用时可以检查返回值,若是物理上的断开连接时,如网线断开,是不会收到RST的,也是不会返回成功的,若是逻辑上的socket断开,第一次write是会

返回成功的。

SIGPIPE

标签:

原文地址:http://www.cnblogs.com/encode/p/4518151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!