boost::asio ( 3 ) : 有多块网卡时的处理办法

RT.socket


咱们日常写客户端程序时,通常不须要将本地SOCKET与本地的某一个IP进行BIND;当本地只有一块网卡的时候,没有问题。tcp

可是当本地有多快网卡时,系统将该SOCKET自动绑定到一个IP,有可能这个IP不是你所指望的。学习

因此这个时候你就须要进行BIND了。code


对于新手学习BOOST::ASIO,该如何办呢?ip


最终搞定了,代码以下:io


tcp::socket socket1 = new tcp::socket(...); // 构造参数略过
tcp::endpoint end_point(boost::asio::ip::address_v4(ntohl(dwIPAddrHBO)), wPort );
socket1->open(boost::asio::ip::tcp::v4());
socket1->bind(end_point);
看起来简单,其实不简单啊。。