问题标签 [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 投票
1 回答
5042 浏览

c++ - epoll可以接收udp包吗?

我是网络编程的新手,我听说过 epoll。我阅读了一些教程,现在我对 epoll 的作用以及如何实现它有了一些基本的了解。

问题是即使客户端使用 udp 连接我也可以使用 epoll 吗?我阅读的所有教程都使用了 tcp 连接。

还有一个很好的教程或示例代码来解释使用 epoll 实现基于多线程的服务器吗?我从网上获得的那些教程只展示了如何在单线程上创建一个简单的回显服务器。

提前致谢。

0 投票
1 回答
324 浏览

c++ - 读取 epoll 的问题

我有这个while循环,这个代码正在工作。问题是,如果我减小了缓冲区大小并发送比缓冲区大小更大的数据,它会单独接收数据。例如,如果我发送 170 字节(100 字节缓冲区),那么它会读取前 100 字节,然后再次读取 70 字节。处理这个问题的最佳方法是什么?如果多个用户发送这样的数据,那么我如何连接这些分离的数据包?提前致谢..

0 投票
1 回答
5169 浏览

epoll - 有没有关于 epoll UDP 的好例子或教程?

我一直在使用 epoll 与 linux 服务器合作,几乎完成了。我意识到客户端将使用 udp 发送数据包:(

您能否为我提供使用 epoll udp 的任何好的教程或示例?

提前致谢。

0 投票
2 回答
400 浏览

c - 当 N 个套接字与一个监听套接字连接时,epoll_wait() 会通知进程多少次?

成功时,epoll_wait(2) 返回为请求的 I/O 准备好的文件描述符的数量,如果在请求的超时毫秒内没有文件描述符准备好,则返回零。发生错误时,epoll_wait(2) 返回 -1 并正确设置 errno。

假设 epoll 是 ET 触发的,epoll_wait对于 N 个连接的套接字会通知进程 N 次还是只通知一次?

0 投票
1 回答
4558 浏览

c - 通过epoll处理监听socket

以下全部来自man epoll页面:

函数 do_use_fd() 使用新的就绪文件描述符,直到 read(2) 或 write(2) 返回 EAGAIN。

ET 触发的代码示例:

所以对于read/write操作,我们应该通过循环直到EAGAIN收到 a 来完成;但是为什么不是这样accept呢?

IMO,当有多个客户端套接字等待接受时,上面的代码会丢失一些请求,因为它只接受1 个客户端套接字,我们还应该将它包装在一个循环中,直到EAGAIN收到。

或者也许我错过了什么?

0 投票
1 回答
844 浏览

c++ - epoll异常句柄

我正在使用 epoll 进行网络编程。我想知道服务器没有收到客户端发送的所有数据的情况。例如,如果客户端发送了 100 个字节,而服务器以某种方式只收到了 94 个字节。我该如何处理这种情况?

提前致谢..

0 投票
2 回答
2964 浏览

epoll - epoll 检测用户断开连接的最佳方法

我正在使用 epoll 进行网络编程。我想知道检测用户断开连接的最佳方法。现在,我正在使用 select with timeout 来查看接收缓冲区中是否有信号并且在一定时间内没有信号,然后它会关闭套接字连接。

我认为可能还有其他更适合epoll而不是使用select的东西。

提前致谢..

0 投票
2 回答
4574 浏览

networking - 如何检查客户端连接是否仍然存在

我正在使用 epoll 进行网络编程。我有一个连接列表并将每个客户端都放在列表中。如果用户正常断开连接,我可以通过读取 0 来检测用户断开连接。但是,如果用户以某种方式意外断开连接,那么在它尝试向用户发送数据之前,它无法知道这一点。

我不认为 epoll 提供了一个很好的方法来处理这个..所以我认为我应该自己处理这个。如果你们能为我提供与此问题相关的示例或参考资料,我将不胜感激。

0 投票
1 回答
1716 浏览

python - 在 Python epoll 中我可以避免 errno.EWOULDBLOCK、errno.EAGAIN 吗?

我在 python 中编写了一个 epoll 包装器,它工作得很好,但最近我发现性能对于大包发送并不理想。我查看了代码,发现实际上有很多错误

并且之前如文件所述将其静音,因此我的发送功能是这样完成的:

我用谷歌搜索它,并说它是由临时网络缓冲区用完引起的那么我怎样才能手动有效地检测到这个错误而不是进入异常阶段呢?

因为它会导致很多时间来处理/处理异常。

0 投票
1 回答
21759 浏览

linux - 如何使用 EPOLLHUP

你们能否为我提供一个很好的示例代码,使用 EPOLLHUP 进行死对等处理?我知道这是一个检测用户断开连接的信号,但不确定如何在代码中使用它..提前谢谢..