Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我已经使用 epoll 创建了一个 linux 服务器。我意识到客户端将使用 udp 数据包......
我刚刚从我的代码中删除了“听”部分,它似乎工作正常。但我想知道我可能面临的任何隐藏问题或问题。
另外,如果客户端发送 udp 数据包,使用 epoll 作为服务器是不是一个坏主意?
如果各个线程除了接收 UDP 数据包不需要做任何其他事情,你也可以直接阻塞recvfrom,这将是完全相同的效果,但系统调用更少,代码复杂度更低。
recvfrom
另一方面,如果您需要定期执行其他操作,或者需要一些不依赖于数据包是否到达网络的及时约束,则最好还是使用 epoll,即使它看起来有点矫枉过正。 epoll 的最大优势在于,除了相当高效之外,它还很舒适且可扩展(您可以插入 signalfd、timerfd 或 eventfd 以及许多其他东西)。