我一直在网上搜索答案,但我似乎找不到完整的答案。
场景:我有一个客户端API和一个服务器。应用程序使用客户端API与服务器通信。 TCP和UDP都用于在客户端API和服务器之间进行通信。所有这些都是使用ASIO编写的。
客户端API通过TCP连接到服务器,然后通过TCP发送命令并通过TCP接收响应。客户端API还会侦听UDP地址,以便连续接收实时数据。
环境是运行WIN32和WIN64的混合机器。所有机器也有2个网卡。
问题:我希望能够将我的TCP和UDP连接“固定”到特定的本地网络接口。我已经看到一些讨论SO_BINDTODEVICE
套接字选项以及早期帖子或其他网站的绑定功能的信息。
是否可以在WIN32 / 64环境中执行此操作?如果您能够对此有所了解,一些示例或有用的网站我会非常感激。
我发现的链接:
答案 0 :(得分:8)
您可以使用相应的tcp::ip::acceptor
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
);
}