29得票1回答
在关闭套接字之前,有必要从epoll中注销吗?

假设有以下代码,其中“sock”是之前已经在由epfd指定的epoll文件描述符中注册过的TCP套接字句柄。epoll_ctl(epfd, EPOLL_CTL_DEL, sock, &ev); close(sock); 如果套接字随后会被关闭,是否仍然需要调用 epoll_ctl?或者...

10得票1回答
如果在边缘触发模式下调用epoll_ctl之前文件是可读的,那么随后的epoll_wait会立即返回吗?

epoll能否保证在使用epoll_ctl注册文件时,对于EPOLLIN和EPOLLET的第一次(或持续性)调用epoll_wait会立即返回,如果在epoll_ctl调用之前文件已经可读?通过我的测试程序的实验,答案似乎是肯定的。以下是几个示例以澄清我的问题: 假设我们已初始化了一个epo...

8得票2回答
选择哪个函数:select()、poll() 还是 epoll() 来读取 sysfs 属性?

我正在处理gpio中断。我有一个在"/sys/class/gpio/gpio38/value"目录下的文件。每当属性value发生变化时,我希望得到通知。那么我该如何在用户空间实现这一点呢?鉴于我已经收集了信息,可以使用select()、poll()或epoll()。对于本应用程序来说,哪种是...

8得票2回答
Boost消息队列不是基于POSIX消息队列的?无法使用select(2)吗?

我想使用Boost.Interprocess的消息队列代替套接字在一台主机内进行通信。但是经过深入研究,似乎该库由于某种原因避免使用POSIX消息队列设施(我的Linux系统支持),而是在POSIX共享内存上实现。尽管接口相似,您可能不能立即猜到这一点,但似乎确实如此。 对我来说,不利的一面...

14得票1回答
关于 epoll_ctl()

在使用 epoll_ctl() 函数时,我发现第三个参数“fd”是除了 epoll 文件描述符“epfd”之外的另一个文件描述符。我看到有这样一个示例:event.data.fd = sfd; //sfd is a fd for listening event.events = EPOLLIN...

8得票2回答
epoll和select的区别

我已经阅读了几本网络书籍,以获取有关epoll和select之间差异的一些想法,但它们只稍微涵盖了这些概念。如果您能详细提供关键区别,我将不胜感激。 提前致谢。

69得票2回答
选择select、poll还是epoll?

我正在设计一个新的服务器,需要支持数千个UDP连接(大约100,000个会话)。有关哪种服务器最好使用的任何建议或意见?

13得票3回答
当timeout为0时,poll()函数会立即检查文件描述符的状态并立即返回。

我正在查看 poll() 的文档,它告诉我在 timeout 参数传入正值和负值时的行为。但它没有说明如果 timeout 为 0 会发生什么。 你有什么想法吗? 查看 epoll_wait() 的文档,它告诉我当 timeout 值为 0 时,即使没有事件可用,它也会立即返回。那么可以安全...

21得票3回答
UDP数据包丢失 - INErrors与RcvbufErrors的区别

我编写了一个简单的UDP服务器程序,以更好地了解可能存在的网络瓶颈。 UDP服务器:创建一个UDP套接字,将其绑定到指定的端口和地址,并将套接字文件描述符添加到epoll兴趣列表中。然后,它的epoll等待传入的数据包。在接收到传入的数据包(EPOLLIN)时,它会读取该数据包并打印接收到的...

15得票3回答
我不理解Python中的轮询/选择。

我正在使用Python进行一些线程化的异步网络实验,使用的是UDP。 我想了解轮询和select Python模块,我以前没有在C/C++中使用过它们。 它们是做什么的?我有点理解select,但它在监视资源时是否会阻塞?轮询的目的是什么?