gpt4 book ai didi

c - 单个主机的阻塞与非阻塞 UDP 套接字

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:08 25 4
gpt4 key购买 nike

我正在编写一个从单个发件人接收 UDP 数据报的客户端。所有 IO 都将在单个线程中完成。通常,要么没有数据,要么有 30 MBit/s 的流。我主要关心的是保持尽可能低的延迟。

计划是在一个短超时循环中阻塞、等待数据,以便 IO 线程可以响应关闭请求等。

我倾向于使用阻塞套接字,在其上设置超时,然后执行 recvfrom() 调用。然而,这似乎比非阻塞套接字上的 select()/poll()recvfrom() 组合更不常见。

考虑到我只使用一个套接字,非阻塞方法似乎不必要地复杂化。我还缺少其他东西吗?在这种特殊情况下是否有理由更喜欢非阻塞套接字?

最佳答案

如果你有一个专门的线程来处理套接字,那么异步 I/O、select 等都是无用的。您想要的只是 recvfrom(2) 并尽快处理数据。

任何花哨的机制(epolllibaio 等)都不会帮助您提高应用程序的速度。

关于c - 单个主机的阻塞与非阻塞 UDP 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6310852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com