测试了本地unix socket,
如果客户端异常挂掉,
如果是阻塞模式,服务端recv则会卡住。服务端send,则会产生SIGPIPE信号中断程序。
如果是非阻塞模式,服务端recv会返回-1,errno给EAGAIN,服务端send,则会产生SIGPIPE信号中断程序。
如果是服务端异常挂掉
如果是阻塞模式,客户端recv会返回0,表示链接断开,客户端send,则会产生SIGPIPE信号中断程序
如果是非阻塞模式,客户端recv会返回0,表示链接断开,客户端send,则会产生SIGPIPE信号中断程序
总结,无论那端挂掉,链接中断,send的时候会产生SIGPIPE信号。
如果是客户端挂掉,服务端存在卡死的情况。
如果是服务端挂掉,客户端收数据返回0。
目前只测试本地unix socket,不过预计TCP/IP同理。
如果客户端异常挂掉,
如果是阻塞模式,服务端recv则会卡住。服务端send,则会产生SIGPIPE信号中断程序。
如果是非阻塞模式,服务端recv会返回-1,errno给EAGAIN,服务端send,则会产生SIGPIPE信号中断程序。
如果是服务端异常挂掉
如果是阻塞模式,客户端recv会返回0,表示链接断开,客户端send,则会产生SIGPIPE信号中断程序
如果是非阻塞模式,客户端recv会返回0,表示链接断开,客户端send,则会产生SIGPIPE信号中断程序
总结,无论那端挂掉,链接中断,send的时候会产生SIGPIPE信号。
如果是客户端挂掉,服务端存在卡死的情况。
如果是服务端挂掉,客户端收数据返回0。
目前只测试本地unix socket,不过预计TCP/IP同理。