macOS link-local IPv6 multicast - boost: set_option: Невозможно назначить запрошенный адрес

Я пытаюсь реализовать многоадресную рассылку IPv6 с помощью библиотеки повышения (1.61.0). Тем не менее, я получаю следующую ошибку в macOS (OSX 10.10, 10.11, 10.12) и только для локальной ссылки (работает Global IPv6). Я не получаю эту ошибку в Ubuntu (14.04, 16.04, 17.10). Netif.getIndex() получает индекс интерфейса для локальной ссылки. Где я делаю не так?

Ошибка:

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 ответов

Другие вопросы по тегам