一句话总结:网络编程中需要处理SIGPIPE信号,防止进程退出。
客户端关闭套接字后,如果服务器调用一次write,服务器会接收到RST segment(TCP传输层),如果服务器再次调用write,这个时候就会产品SIGPIPE信号(在无读者的管道上写),导致整个进程退出。
如果我们不想服务器退出,需要忽略SIGPIPE,交给系统处理,如: signal(SIGPIPE,SIG_IGN);
一句话总结:网络编程中需要处理SIGPIPE信号,防止进程退出。
客户端关闭套接字后,如果服务器调用一次write,服务器会接收到RST segment(TCP传输层),如果服务器再次调用write,这个时候就会产品SIGPIPE信号(在无读者的管道上写),导致整个进程退出。
如果我们不想服务器退出,需要忽略SIGPIPE,交给系统处理,如: signal(SIGPIPE,SIG_IGN);