大家好,又见面了,我是你们的朋友全栈君。
SIGPIPE信号的产生
在tcp四次挥手过程中,发送方向已经调用close()方法的socket一端写数据,会产生sigpipe错误。
close():关闭读写两个方向,会导致sigpipe信号
shutdown():可以选择关闭读/写方向,不会导致sigpipe信号
SIGPIPE信号的解决方法
直接忽略sigpipe信号
void handle_for_sigpipe()
{
struct sigaction sa;
memset(&sa, 'void handle_for_sigpipe()
{
struct sigaction sa;
memset(&sa, '\0', sizeof(sa));
sa.sa_handler = SIG_IGN;
sa.sa_flags = 0;
if(sigaction(SIGPIPE, &sa, NULL))
return;
}
', sizeof(sa));
sa.sa_handler = SIG_IGN;
sa.sa_flags = 0;
if(sigaction(SIGPIPE, &sa, NULL))
return;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160783.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...