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

时间:2014-02-26 08:37:00

标签: c++ sockets boost-asio tcp-ip

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

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

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

但没有人重播。

编辑:

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

这是两个连接,而不是三个连接。检查端口号。显然,由于某种原因,库会创建与自身的连接。

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