一尘不染

如何处理Linux套接口POLLERR,POLLHUP和POLLNVAL?

linux

我想知道当轮询设置这些位时应该怎么做?关闭插座,忽略它还是什么?


阅读 1230

收藏
2020-06-03

共1个答案

一尘不染

POLLHUP装置插座不再连接。在TCP中,这意味着已接收和发送FIN。

A
POLLERR表示套接字收到异步错误。在TCP中,这通常意味着已经接收或发送了RST。如果文件描述符不是套接字,则POLLERR可能意味着设备不支持轮询。

对于上述两种情况,套接字文件描述符仍处于打开状态,并且尚未关闭(但shutdown()可能已经被调用)。close()文件描述符上的A
将释放仍代表套接字保留的资源。从理论上讲,应该可以立即重用套接字(例如,通过另一个connect()调用)。

A POLLNVAL表示套接字文件描述符未打开。这将是一个错误close()

2020-06-03