【发布时间】:2012-05-15 05:56:33
【问题描述】:
我必须在 AF_INET 套接字中处理哪种信号,包括服务器端和客户端?
【问题讨论】:
我必须在 AF_INET 套接字中处理哪种信号,包括服务器端和客户端?
【问题讨论】:
根据您的工作方式,您可能必须处理SIG_PIPE,这可能在连接被任意中断时发生。
您不必处理任何其他信号。
如果您使用select() 或poll() 或(个人偏好)epoll(),您应该检查错误(例如,POLLHUP)在检查读/写可用性之前。
您还应该始终检查read()/write()/send()/recv() 的返回值。如果有错误,则返回-1,但如果返回0,则表示另一端断开连接。即,读取 0 确实意味着读取了 0 个字节,但连接仍然良好。它不是。关闭插座。这是 POSIX 规定的。
【讨论】: