Jan*_*jto 5 boost interface multicast boost-asio
我以为我在下面的例子中找到了答案,但并不完全.
boost::asio::ip::udp::socket socket(io_service);
...
boost::asio::ip::address_v4 local_interface =
boost::asio::ip::address_v4::from_string("1.2.3.4");
boost::asio::ip::multicast::outbound_interface option(local_interface);
socket.set_option(option);
Run Code Online (Sandbox Code Playgroud)
如何映射eth0到适当的outbound_interface选项?
以下代码在 Windows 和 Mac OS X 上运行良好:
const ip::udp::resolver::query queryIF( ip::udp::v4(),
_description->getInterface(), "0" );
const ip::udp::resolver::iterator interfaceIP =
resolver.resolve( queryIF );
if( interfaceIP == end )
return false;
const ip::address ifAddr( ip::udp::endpoint( *interfaceIP ).address( ));
_read->set_option( ip::multicast::join_group( mcAddr.to_v4(),
ifAddr.to_v4( )));
_write->set_option( ip::multicast::outbound_interface( ifAddr.to_v4()));
Run Code Online (Sandbox Code Playgroud)
编辑:我在 Linux 上遇到了一些问题,但还没有研究它。我的猜测是套接字选项被忽略,有利于路由表。
| 归档时间: |
|
| 查看次数: |
5391 次 |
| 最近记录: |