我要处理SIGHUP和SIGPIPE信号,以避免通过Socket TCP连接的CLIENT关闭终端(GUI的[X])不得关闭或崩溃SERVER。 / p>
我在客户端上设置了像这样的sigup处理程序
void sighup()
{
signal(SIGHUP, SIG_IGN);
system("echo SIGHUP received>>log.txt");
close(socket);
exit(0);
}
在服务器上,我设置了一个像这样的
的SIGPIPE处理程序signal(SIGPIPE,SIG_IGN);
但是,如果客户端关闭终端的窗口,则服务器会循环。
有什么想法吗? 无论如何,谢谢您的支持
答案 0 :(得分:0)
我犯了一个错误,我会把所有检查全部写入和读取 perrorctions with perror。但是,无论如何,这是正确的处理方式 情况如何?
忽略SIGPIPE是可行的。或者,您可以通过向send()
提供MSG_NOSIGNAL标志来阻止生成SIGPIPE。