Информация об изменениях

Сообщение Получение данных мультикастом от 01.03.2017 10:23

Изменено 01.03.2017 10:43 prrt

Получение данных мультикастом
На один из интерфейсов сервера получаю 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 ничего не приходит?
Получение данных мультикастом
На один из интерфейсов сервера получаю 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 ничего не приходит?