macOS link-local IPv6 multicast - boost:set_option:无法分配请求的地址

时间:2017-11-08 06:27:09

标签: macos boost ipv6 multicast link-local

我正在尝试使用boost库(1.61.0)实现IPv6多播。但是,我在macOS(OSX 10.10,10.11,10.12)中收到以下错误,仅用于本地链接(全局IPv6工作)。我在Ubuntu上没有得到这个错误(14.04,16.04,17.10)。 netif.getIndex()获取link-local的接口索引。我在哪里做错了?

错误:

boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >: set_option: Can't assign requested address

这是我的IPv6多播代码段:

receiveSocket.bind(udp::Endpoint(localEndpoint.address(), multicastEndpoint.port()));
receiveSocket.set_option(ip::multicast::join_group(multicastEndpoint.address().to_v6()));

if (!localEndpoint.address().is_unspecified()) {
   sendSocket.set_option(ip::multicast::outbound_interface(netif.getIndex()));
}
sendSocket.set_option(ip::multicast::join_group(multicastEndpoint.address().to_v6()));

0 个答案:

没有答案