1

通过使用libevent-2.x,有一个选项EV_TIMEOUT可以标记特定的超时fd

event_set(&ev, fd, EV_READ | EV_TIMEOUT, worker, priv_data);

通过将超时设置为 5 分钟,fd 将被服务器设置为超时。我需要priv_data在服务器端释放或做一些统计的提示,有没有办法fd只通过设置EV_TIMEOUT选项(例如回调)来找到超时?

4

1 回答 1

2

我不确定我是否理解您问题的这一部分“仅通过设置EV_TIMEOUT选项。其余部分,我想我可以为您回答。

有一种方法可以检查超时事件是否导致事件返回回调。

假设您的回调原型如下所示

(evutil_socket_t fd, short what, void *arg)

然后您可以通过执行以下操作检查超时fd(what&EV_TIMEOUT)

相关类型定义在<event2/event.h>.

如果这不能回答您的问题,您可以在这里找到很多相关信息,例如:http ://www.wangafu.net/~nickm/libevent-book/Ref4_event.html

于 2013-08-26T01:51:37.233 回答