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