На один из интерфейсов сервера получаю multicast данные. Данные поступают корректно:
# tcpdump -i eth1 udp port 30001 -vv -X
показывает, что всё ок, данные есть
Но через boost asio ничего не приходит.
Получаю так:
boost::asio::ip::address listen_address = boost::asio::ip::address::from_string("192.168.2.2");
boost::asio::ip::address multicast_address = boost::asio::ip::address::from_string("239.255.0.1");
boost::asio::ip::udp::endpoint listen_endpoint(listen_address, 30001);
socket_.open(listen_endpoint.protocol(), error);
socket_.set_option(boost::asio::ip::udp::socket::reuse_address(true));
socket_.bind(listen_endpoint);
socket_.set_option(boost::asio::ip::multicast::join_group(multicast_address));
socket_.async_receive_from(
boost::asio::buffer(&inputData[0], 10000000), sender_endpoint_,
strand_.wrap(
boost::bind(&ClientUdp::handle_receive_from, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred)));
Здесь 192.168.2.2 — IP интерфейса eth1.
239.255.0.1 — IP группы
30001 — порт группы
boost::asio::ip::udp::socket socket_;
boost::asio::ip::udp::endpoint sender_endpoint_;
std::vector<uint8_t> inputData;
Подскажите, что может быть не так, как найти причину, почему через boost asio ничего не приходит?