epoll对udp客户端来说是个坏主意吗
Is epoll a bad idea for udp client?
我已经使用epoll创建了一个linux服务器。我意识到客户端将使用udp数据包。。。
我刚从代码中删除了"监听"部分,它似乎起作用了。但我想知道我可能面临的任何隐藏的问题。
此外,如果客户端正在发送udp数据包,那么使用epoll作为服务器是不是一个坏主意?
如果相应的线程除了接收UDP数据包之外不需要做任何其他事情,那么您也可以在recvfrom
上进行阻塞,这将产生完全相同的效果,只需减少一个系统调用和更少的代码复杂性。
另一方面,如果你需要定期做其他事情,或者有一些不应该取决于数据包是否到达网络的及时限制,那么最好还是使用epoll,即使这看起来有些过头了
epoll的最大优点是,除了效率合理之外,它还舒适且可扩展(您可以插入signalfd、timerfd或eventfd以及许多其他东西)。
相关文章:
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 如何击败UDP客户端中的延迟
- UDP 客户端挂起C++问题
- UDP 客户端(接收器)未按预期接收数据报
- UDP客户端/服务器程序在不同的IP和端口上通信超过2个插座
- 为什么在此 UDP 客户端/服务器示例中没有必要绑定客户端套接字?
- UDP 客户端到 UDP 服务器的问题,出现 10057 错误
- UDP 客户端不会在 esp32 上广播消息
- 如何在Qt中使UDP"客户端",以便他从服务器接收数据?
- 无法在 matlab 中的 UDP 客户端和 Linux 中的服务器之间发送数据
- 在cygwin(windows)和gcc/g++mac中的udp客户端服务器
- Boost Asio,异步 UDP 客户端 - 关机时崩溃
- 在 ipv6 链接范围单播 udp 客户端-服务器中应用 boost::asio::ip::udp,有时有效,但有时无效
- 如何强制 udp 服务器接收的 udp 客户端套接字绑定到特定客户端端口
- UDP客户端-服务器程序使用gcc而不是g++进行编译
- UDP 客户端和服务器设计使用 boost::asio
- UDP 客户端/服务器发送数据但无法读取
- UDP客户端多播:加入一个组,指定什么地址
- UDP客户端getsocketname()和服务器recv()的源端口不同
- epoll对udp客户端来说是个坏主意吗