boost::asio::async_connect 不仅创建一个 TCP 连接,还创建两个

boost::asio::async_connect creates not only one TCP connection but two

本文关键字:创建 连接 TCP 两个 一个 asio boost async connect      更新时间:2023-10-16

我刚刚意识到通过TCPView查看,使用boost::asio建立的单个TCP连接会创建两个连接。其中一个使用本地端口,另一个使用所需的远程端口。为什么?这种行为正常吗?有没有办法只创建一个?

这个问题最初是在几年前发布的:

http://boost.2283326.n4.nabble.com/ASIO-tcp-socket-async-connect-connections-count-tc3901601.html#none

但没有人重播。

编辑:

我正在连接到端口 8001,这就是我在 netstat -na 中看到的:

TCP    127.0.0.1:10246        127.0.0.1:8001         ESTABLISHED     3252
TCP    127.0.0.1:10244        127.0.0.1:10245        ESTABLISHED     3252
TCP    127.0.0.1:10245        127.0.0.1:10244        ESTABLISHED     3252

谢谢!

这是两个连接,而不是三个。检查端口号。显然,出于某种原因,库与自身建立了联系。

当您创建第二个连接时,知道它是否再次发生会很有趣。