如何指定在用c编写的应用程序中使用的特定NIC(boost asio)
发布时间:2020-12-16 05:04:13 所属栏目:百科 来源:网络整理
导读:我有一台连接到多个独立网络的计算机,每个网络位于不同的NIC(网络接口卡)上.该机器运行 Windows 7. 我在机器上运行一个应用程序,需要使用TCP通过特定的NIC连接到特定的IP.该应用程序使用c 11和boost asio(1.53.0)进行联网,并且可以更改源. 在Windows环境中,
我有一台连接到多个独立网络的计算机,每个网络位于不同的NIC(网络接口卡)上.该机器运行
Windows 7.
我在机器上运行一个应用程序,需要使用TCP通过特定的NIC连接到特定的IP.该应用程序使用c 11和boost asio(1.53.0)进行联网,并且可以更改源. 在Windows环境中,有哪些不同的合理方法可以解决此问题(指定端点IP和NIC)? 当前解决方案将相应的(块)IP分配给路由表中的右侧NIC – 使用命令行“route”命令 – 作为持久路由.这样OS就可以处理问题,这是允许但不是必需的. 解决方法
在连接之前,应将
open() 和
bind() 套接字连接到端点.在此示例中,我将其绑定到loopback接口,在您的方案中,您可以绑定到NIC的接口.
#include <boost/asio.hpp> int main() { using namespace boost::asio; io_service ios; ip::tcp::socket sock( ios ); sock.open( ip::tcp::v4() ); sock.bind( ip::tcp::endpoint(ip::address::from_string("127.0.0.1"),0) ); sock.connect( ip::tcp::endpoint(ip::address::from_string("127.0.0.1"),1234) ); } 我不是Windows程序员,所以我不能提供比这更详细的例子.我相信你可以使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |