epoll 相关问题

epoll是用于套接字,管道和特殊事件,信号和定时器描述符的Linux 2.6就绪通知API,它们可以在级别和边缘触发模式下运行,尽管目前只有级别触发的行为符合文档。与轮询或选择相反,epoll在描述符的数量和关于实现的事件的O(N)方面缩放O(1)。

在非阻塞套接字上通过轮询正确处理 EWOULDBLOCK

我从事轮询 TCP 守护进程已经有一段时间了。最近,我读到非阻塞套接字有时会在 send() 或 receive() 期间抛出 EWOULDBLOCK 错误。我的理解是...

回答 1 投票 0

民意调查、选择并“将阻止”

我正在学习 poll、select 和类似的函数,并且我经常被“会阻塞”这一说法所困扰(它出现在我正在阅读的关于为 Linux 构建驱动程序的书中,并且......

回答 3 投票 0

C - 当客户端发送第二条消息时,服务器导致堆栈溢出

我目前正在使用 epoll() 处理传入连接的 IPv4 服务器上。服务器和客户端之间的通信方式是客户端发送一条以 1 开头的消息...

回答 1 投票 0

Redis是单线程的,那么它是如何进行并发I/O的呢?

在尝试掌握 Redis 的一些基础知识时,我发现了一篇有趣的博客文章。 作者指出: Redis 是单线程的 epoll/kqueue,并且在 I/O 并发方面可以无限扩展。 我

回答 2 投票 0

TCP 服务器:recv() 具有动态增加缓冲区大小

我试图读取客户端发送到 TCP 服务器的所有数据,但事先不知道数据可能有多大,并且不限制接收的缓冲区大小。 TCP 服务器是...

回答 1 投票 0

signalfd 与多线程 epoll 实例

假设 Web 服务器利用 SO_REUSEPORT 来改进多线程服务器中的负载分配,即每个线程打开自己的侦听套接字(在同一端口上),其文件描述符是...

回答 1 投票 0

带有定时器fd的epoll

我想用newValue的it_interval来设置超时的时间间隔。 但在我的示例中,我只能打印一次超时。 发生了什么?如何设置间隔? 这是我的代码: ...

回答 1 投票 0

使用 epoll 进行异步连接和断开连接 (Linux)

我需要在 Linux 上使用 epoll 为 TCP 客户端进行异步连接和断开连接。有分机。 Windows 中的函数,如 ConnectEx、DisconnectEx、AcceptEx 等 对于 TCP 服务器,标准...

回答 4 投票 0

在 C 中使用带有原始套接字的 epoll()

我遇到了这个问题,如何在C语言中将epoll()与Raw Socket一起使用? 我找到了几个例子,但它们都是针对 SOCK_DGRAM 和 SOCK_STREAM 而不是 SOCK_RAW。 我尝试修改

回答 1 投票 0

无法通过 epoll-client 发送数据

我创建了一个套接字,将其设置为非阻塞状态,通过 getaddrinfo 获取地址,连接,然后使用 EPOLLIN | 将其添加到 EPOLL | EPOLLOUT 标志。 在我的 epoll_wait 的下一次迭代中,它得到了...

回答 2 投票 0

来自 pidfd 的 epoll() 之后 waitpid() 的保证

我正在编写一个进程管理器,用于监视其子进程并在必要时重新启动它们。 目前,我有与每个正在运行的进程关联的 pidfd 和 epoll 等待所有这些 pi...

回答 1 投票 0

如何使用 epoll 处理 keep-alive 事件?

我正在cpp 98中编写一个简单的网络服务器,当我收到保持活动事件时,我没有关闭套接字并回收它,但已经设置为EPOLLIN,因此epoll_wait将其返回并在阅读后

回答 1 投票 0

取消卡在 epoll_wait 上的线程

我正在使用 C++ 和 pthreads 进行一些事件处理。我有一个从我定义的事件队列中读取的主线程,以及一个填充事件队列的工作线程。队列当然是线程安全的。 ...

回答 3 投票 0

等到文件描述符在没有繁忙循环的情况下不再可读

等待文件描述符变得可读非常简单: 结构 pollfd f; 签署结果; f.fd = a_file_descriptor_a_pipe_in_my_case; f.events = 波林 |轮询器 |轮询; 结果=民意调查(...

回答 2 投票 0

读取许多真实的文件描述符

使用 Linux (Ubuntu) 应用程序。我需要以非阻塞方式读取许多文件。不幸的是,epoll 不支持真正的文件描述符(来自文件的文件描述符),它确实支持...

回答 2 投票 0

epoll中connect()失败如何通知?

我正在编写一个简单的测试脚本(python)来测试Web服务器的性能(该服务器所做的只是HTTP重定向)。 Socket 设置为非阻塞,并注册到 epoll 实例。 我怎样才能...

回答 2 投票 0

在C++中,如何销毁以类成员函数启动并正确等待epoll的线程?

正如问题所说,我有课。伪代码如下: 我的班级 { 我的课() { epoll_fd = epoll_create(0); /*这里用MyClass::threadFunc()启动一个线程*/

回答 1 投票 0

select vs poll vs epoll [已关闭]

我正在设计一个新服务器,需要支持数千个 UDP 连接(大约 100,000 个会话)。有人可以解释一下 select、poll 和 epoll 吗?它会帮助我知道该使用哪一个。

回答 2 投票 0

我的epoll服务器无法检测到客户端断开连接

我写了一个epoll服务器和一个简单的客户端。当客户端发送消息后,立即退出,服务器不会注意到断开连接。 events[i].events & EPOLLERR ||事件[i].eve...

回答 1 投票 0

epoll 线程安全吗?

epoll中有两个函数: epoll_ctl epoll_等待 当我使用相同的 epoll_fd 时它们是线程安全的吗? 如果一个线程调用epoll_wait,而其他线程同时调用epoll_ctl,会发生什么情况?

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.