TCP/IP协议中SIGPIPE信号产生原因 1.假设客户端socket套接字close(),会给服务器发送字节段FIN; 2.服务器接收到FIN,但是没有调用close(),因为socket有缓存区,所以服务器仍然可以向客户端发送数据。 3.如果这种状态下服务器向客户端发送数据,将会引起TCP/IP协议进行RST段重置,导致服务器向当前进程发送SIGPIPE信号, SIGPIPE信号的默认动作是关闭当前进程。 所以在网络编程中必须要捕捉SIGPIPE信号,因为不确定哪个端会突然close()。
时间: 2024-09-29 22:09:40