epoll:区分“听众”FD

时间:2010-06-28 18:36:19

标签: c linux epoll

如何区分“监听器”文件描述符和“客户端”文件描述符?

以下是我在manpage示例中看到的内容:

if(events[n].data.fd == listener) {
    ...
} else {
    ...
}

'但如果我无法访问listener该怎么办?

对不起,如果这是一个模糊的问题。我不太确定如何说出来。

1 个答案:

答案 0 :(得分:3)

假设您正在编写服务器,您应该将侦听套接字描述符保留在某个变量中(手册页中的listener),或者为您提供给epoll_ctl(2)的每个套接字设置一个小结构并使用data.ptr的{​​{1}}成员指向它(不要忘记在套接字关闭时取消分配该结构)。

这样的事情:

struct epoll_event

正如您所看到的那样,只需访问服务器套接字描述符就可以了,但它具有很好的特性,可以将所有信息保存在一个地方。