原文地址::send函数导致程序崩溃_socket send crash-CSDN博客
相关文章
1、Linux下send()函数发送数据卡死问题----Linux下send()函数发送数据卡死问题_sendto卡住-CSDN博客
2、Linux下socket函数send导致程序终止----Linux下socket函数send导致程序终止 - 哔哩哔哩
3、TCP 服务器程序突然中断 由于send函数导致----TCP 服务器程序突然中断 由于send函数导致_tcpserver send数据后连接断开-CSDN博客
4、linux C语言 SOCKET 服务器断开导致客户端SEND崩溃问题解决办法----linux C语言 SOCKET 服务器断开导致客户端SEND崩溃问题解决办法_服务端没有优雅的关闭stock,客户端发送数据崩溃了怎么办-CSDN博客
5、Linux下send函数 Broken pipe错误的解决方法----Linux下send函数 Broken pipe错误的解决方法_linux send broken pipe-CSDN博客
1. 问题描述:
客户端send函数的时候,偶尔导致程序崩溃。
2. 原因:
在linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号,这个信号的缺省处理方法是退出进程。
3. 解决办法:
1)client中忽略SIGPIPE信号
signal(SIGPIPE, SIG_IGN);
2)阻止SIGPIPE信号
sigset_t set;
sigemptyset(&set);
sigaddset(&set, SIGPIPE);
sigprocmask(SIG_BLOCK, &set, NULL);
3)为SIGPIPE添加信号处理函数
signal(SIGPIPE, pipesig_handler);
本文摘抄自https://www.cnblogs.com/cmt/p/14580194.html?from=https%3A%2F%2Fwww.cnblogs.com%2Fpoonpan%2Fp%2F9292819.html&blogId=331956&postId=9292819
另外学习了https://www.cnblogs.com/jingzhishen/p/3453727.html等的文章
谢谢其他博主的分享
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/sofa120/article/details/115868682