gpt4 book ai didi

c++ - 在 unix 套接字上调用 async_connect 有意义吗?

转载 作者:行者123 更新时间:2023-11-30 02:16:30 26 4
gpt4 key购买 nike

我正在使用 asio 构建一个可以通过 TCP 或 unix 套接字连接到远程系统的网络库。我使用 asio::generic::stream_protocol::socket,它同时具有 connectasync_connect 方法。作为客户端连接到 unix 套接字时使用 async_connect 是否有意义?

最佳答案

定义“有意义”。这两种方式都有效,但对风格、架构和性能的影响不同。

数据输入/输出,尤其是网络上的数据输入/输出具有高延迟,即延迟,并导致整个模糊异步编程风格,boost asio 甚至因此得名。

因此在 TCP 情况下使用阻塞 connect 将是一个非常糟糕的选择,因为整个线程正在等待几毫秒直到发生某些事情并且不能做任何其他事情,而它会没问题在 IPC 的情况下,即 unix 套接字。

但既然你想要两者,我建议简单地使用 async_connect,因为无论如何你必须以“异步”风格组织你的整个程序,对于 TCP 情况,它没有unix 套接字案例的任何缺点(也可能比阻塞套接字更快或具有更高的吞吐量)。并且为了避免不必要的分支特殊情况,被许多人考虑,包括。我是有道理的。

关于c++ - 在 unix 套接字上调用 async_connect 有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54803019/

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