首页 > 代码库 > Linux 网络编程详解九

Linux 网络编程详解九

TCP/IP协议中SIGPIPE信号产生原因
1.假设客户端socket套接字close(),会给服务器发送字节段FIN;
2.服务器接收到FIN,但是没有调用close(),因为socket有缓存区,所以服务器仍然可以向客户端发送数据。
3.如果这种状态下服务器向客户端发送数据,将会引起TCP/IP协议进行RST段重置,导致服务器向当前进程发送SIGPIPE信号,
  SIGPIPE信号的默认动作是关闭当前进程。

所以在网络编程中必须要捕捉SIGPIPE信号,因为不确定哪个端会突然close()。

 

Linux 网络编程详解九