SIGPIPE
发布日期:2021-08-13 22:07:49 浏览次数:7 分类:技术文章

本文共 345 字,大约阅读时间需要 1 分钟。

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

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

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

返回成功的。

转载于:https://www.cnblogs.com/encode/p/4518151.html

转载地址:https://blog.csdn.net/weixin_30699831/article/details/98331048 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:计算机网络:ch1计算机网络体系架构
下一篇:template的友元声明-如果友元是限定版本,则必须声明友元之前声明函数原型

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月05日 20时49分54秒