使用boost asio udp socket时如何设置本地端点

时间:2011-07-13 13:45:53

标签: boost-asio

我在PC上有3个网络接口,并且想确保当我执行udp套接字发送时,它通过特定的网络接口发送(我有发送数据时使用的ip地址)。

这是代码。

udp::socket send_socket(io_service,boost::asio::ip::udp::v6());
udp::endpoint local_end_point(boost::asio::ip::address::from_string(LocalIpAddress),1111);
//  send_socket.bind(local_end_point);
send_socket.send_to(const_buffer,senderEndpoint,0,error);

上面的代码有效但我无法控制数据通过什么网络接口发送。如果我取消注释send_socket.bind行,我将停止在另一端接收任何数据。

有没有其他方法可以将套接字绑定到特定的网络接口?

1 个答案:

答案 0 :(得分:4)

bind()函数将套接字绑定到特定的网络接口以进行发送和接收。如果您在另一端停止接收数据,则可能是因为另一端无法通过您在bind呼叫中指定的NIC路由。