我想知道当轮询设置这些位时应该怎么做?关闭 socket ,忽略它还是什么?
最佳答案
POLLHUP
表示套接字已不再连接。在TCP中,这意味着已接收和发送FIN。POLLERR
表示套接字收到异步错误。在TCP中,这通常意味着已经接收或发送了RST。如果文件描述符不是套接字,则POLLERR
可能表示设备不支持轮询。
对于上述两种情况,套接字文件描述符仍处于打开状态,并且尚未关闭(但是shutdown()
可能已经被调用)。文件描述符上的close()
将释放仍代表套接字保留的资源。从理论上讲,应该可以立即重用套接字(例如,通过另一个connect()
调用)。POLLNVAL
表示套接字文件描述符未打开。对其进行close()
将会是一个错误。