问题标签 [epoll]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1019 浏览

c - epoll_wait 的替代方案,它不等待文件描述符?

我有一个程序,它使用 timerfd_create 创建一个计时器(计时器到期时,设置一个文件描述符)。

问题是,我epoll_wait用来等待文件描述符,然后使用fd=revent.data.fdand检查过期fd=timer_fd(参见下面的程序)。

但是,如果我这样做,会epoll_wait阻止我的程序直到计时器到期,并且我不希望这种情况发生..我希望程序运行,并且我会定期检查计时器是否到期。有什么替代方法吗?

请看下面的程序。

}

0 投票
0 回答
719 浏览

boost - epoll重新注册:文件存在

当我尝试在断开连接后立即重新连接客户端时,我在服务器端(带有 fork() 的多进程服务器)发生了这个异常。我正在使用boost,但现在我不明白引发异常的确切指令,因为多进程中的调试不仅仅适合我。

但是我想在这一点上:

有任何想法吗?

更新

我用的是1.52版本的asio,所以支持fork,异常在子进程。它发生在第三次重新连接尝试时,所以如果

  1. 连接客户端
  2. 断开连接(由 ctrl +c 强制)
  3. 重新连接(所有工作)
  4. 断开
  5. 重新连接此客户端(或另一个客户端)会引发异常..

这是代码:

0 投票
2 回答
7405 浏览

epoll - libevent和epoll,哪个效率更高?

我认为这是两个最好的事件处理库。

这两个都有很多用户,但哪个更好?

0 投票
1 回答
189 浏览

linux - epoll 的实现有 rfc 吗?

许多网络协议都有自己的 rfc(request for comment),

像 http/1.1 的这个:

http://www.w3.org/Protocols/HTTP/1.1/rfc2616.pdf

网上有epoll自己的rfc吗?

0 投票
1 回答
416 浏览

asynchronous - 多线程彗星服务器库

我正在寻找多线程彗星服务器库 - 我需要的是在线程池(4-8 个线程)上工作的异步 io(使用 epoll)。如果 Tornado 是多线程的,它将是理想的。

为什么是多线程?我需要处理和提供可能来自每个连接的用户的数据——它可以使用数据库在龙卷风实例之间同步,但即使是 nosql 也会太慢——几乎每个请求都会以数据库写入/更新结束——即使使用异步司机不是个好主意。我可以将所有内容存储在本地易失性内存中,因此它可以非常快 - 但必须在单个进程上运行以避免进程间通信。我不需要扩展——一个盒子就足够了——但它必须很快。一些数据将存储在 MongoDB 中 - 但 mongo 查询的数量将是正常请求的 5%。

重要的是 - 信号量(和其他更高级别的方法)对我来说不是火箭科学,所以我不害怕同步。

要求:

  • 异步 io
  • 非阻塞
  • 数千个并发连接
  • 快速地
  • 基本 HTTP 功能(GET、POST、cookies)
  • 异步处理请求的能力(做某事,带回调的异步调用(例如数据库查询),处理回调,返回数据)
  • 线程池
  • C++/Java/Python
  • 简单轻便

也有异步 mongo 驱动程序会很好

我研究了 Boost ASIO,它似乎能够做我需要的事情——但我想专注于应用程序——而不是编写 http 请求处理。

我读过Tornado(看起来很理想,但它是单线程的),Simple(不确定它是否可以异步处理请求并在异步调用后返回数据),BOOST ASIO(非常好,但太低级)

0 投票
3 回答
3611 浏览

c - epoll 消息服务器

我想使用 epoll 创建一个消息服务器。几个设备将连接到服务器并交换简单的文本消息。我在这方面没有太多经验,如果你们能提供与此相关的任何参考资料或教程,我将不胜感激。

我想与 C 合作。提前致谢。

0 投票
2 回答
5492 浏览

select - epoll VS 选择

我已经阅读了几本网络书籍,以了解 epoll 和 select 之间的区别,但它们仅略微涵盖了这些概念。如果你们能向我提供细节上的关键差异,我将不胜感激。

提前致谢

0 投票
1 回答
757 浏览

c - 一个 nginx 工作进程是同时处理两个请求还是一个一个处理?

过滤器链最酷的部分是每个过滤器不会等待前一个过滤器完成;它可以在生成前一个过滤器的输出时对其进行处理,有点像 Unix 管道。(从这里

我猜上面是在每个过滤器末尾谈论这样的代码:

也就是,nginx 将过滤器一一链接起来。但是由于它在每个过滤器的末尾,它必须等到当前过滤器完成。我不明白 nginx 是如何做到的each filter doesn't wait for the previous filter to finish

所以上面是关于nginx过滤器的并发,接下来是关于nginx请求处理的并发:

我们知道 nginxepoll用来处理请求:

使用上面的代码,我不认为 nginx 可以同时处理两个请求,它只能一个一个地完成(每个都handler足够快地完成它的工作,所以下一个请求很快就会得到处理),对吧?

或者我有什么遗漏吗?

0 投票
2 回答
318 浏览

linux - epoll 会通知所有在同一个 fd 上监听的进程吗?

我有多个子进程fork()在同一个 fd 集上监听。

是全部通知还是只通知其中一个?

0 投票
1 回答
1180 浏览

c++ - epoll 对 udp 客户端来说是个坏主意吗?

我已经使用 epoll 创建了一个 linux 服务器。我意识到客户端将使用 udp 数据包......

我刚刚从我的代码中删除了“听”部分,它似乎工作正常。但我想知道我可能面临的任何隐藏问题或问题。

另外,如果客户端发送 udp 数据包,使用 epoll 作为服务器是不是一个坏主意?