场景:服务端向 客户端写出数据的时候, 客户端由于 程序一场,关闭了链接。
此时,导致服务端崩溃了。
原因: 转:http://blog.csdn.net/x_nazgul/article/details/50998292
最后问题确定为, 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程.
解决方案:
因此我们需要重载这个信号的处理方法。调用以下代码,即可安全的屏蔽SIGPIPE:
signal (SIGPIPE, SIG_IGN);