1. 使用Poll管理的时候,可以用 pollfd 的 revents来判断客户端fd是否断开,比如 POLLHUP
2. 使用Select 管理的时候,不管是阻塞或者是非阻塞的 fd, 都可以用 read 或者 recv 返回值为 0 来判断客户端是否断开连接。注意的非阻塞的 fd,在数据没有准备好的时候,要判断errno 为 EWOULDBLOCK 或者 EAGAIN
3. send 的时候,不管是服务器端还是客户端断开,都会发出SIGEPIPE 的信号。
本文介绍了在网络编程中如何检测客户端连接状态的方法。对于使用Poll管理的情况,可以通过pollfd的revents如POLLHUP判断客户端fd是否断开;在Select管理下,无论是阻塞还是非阻塞fd,都可以通过read或recv返回值为0来判断连接是否断开;send操作时,无论哪一端断开,都会触发SIGPIPE信号。
1. 使用Poll管理的时候,可以用 pollfd 的 revents来判断客户端fd是否断开,比如 POLLHUP
2. 使用Select 管理的时候,不管是阻塞或者是非阻塞的 fd, 都可以用 read 或者 recv 返回值为 0 来判断客户端是否断开连接。注意的非阻塞的 fd,在数据没有准备好的时候,要判断errno 为 EWOULDBLOCK 或者 EAGAIN
3. send 的时候,不管是服务器端还是客户端断开,都会发出SIGEPIPE 的信号。

被折叠的 条评论
为什么被折叠?