如何处理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

回到顶部