gpt4 book ai didi

sockets - boost::asio - 对绑定(bind)到特定网络接口(interface)的说明

转载 作者:行者123 更新时间:2023-12-04 17:58:35 25 4
gpt4 key购买 nike

我一直在网上寻找答案,但似乎找不到完整的答案。

场景:我有一个客户端 API 和一个服务器。应用程序使用客户端 API 与服务器通信。 TCP 和 UDP 都用于客户端 API 和服务器之间的通信。所有这些都是使用 ASIO 编写的。

客户端 API 通过 TCP 连接到服务器,然后通过 TCP 发送命令并通过 TCP 接收响应。客户端 API 还会监听 UDP 地址,并在该地址连续接收实时数据。

环境是运行 WIN32 和 WIN64 的机器的混合。所有的机器也有2个网卡。

问:我希望能够将我的 TCP 和 UDP 连接“固定”到特定的本地网络接口(interface)。我看到了一些讨论 SO_BINDTODEVICE 的信息。套接字选项以及早期帖子或其他站点的绑定(bind)功能。

在WIN32/64环境下可以做到吗?如果您能对此有所了解,提供一些示例或有用的网站,我将不胜感激。

我找到的链接:

  • Using Linux, how to specify which ethernet interface data is transmitted on
  • http://tuxology.net/2008/05/15/forcing-connections-through-a-specific-interface/
  • 最佳答案

    您可以使用适当的 tcp::ip::acceptor 绑定(bind)到特定端点constructor

    include <boost/asio.hpp>

    int
    main()
    {
    using namespace boost::asio;
    io_service service;
    ip::tcp::endpoint ep(
    ip::address::from_string( "127.0.0.1" ),
    1234
    );
    ip::tcp::acceptor acceptor(
    service,
    ep
    );
    }

    关于sockets - boost::asio - 对绑定(bind)到特定网络接口(interface)的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3570685/

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