Прослушивание udp-трансляции с библиотекой boost

Кажется, это проблема многих людей, но все ответы, которые я нашел до сих пор, не помогли.

Проблема: Я пытаюсь прослушать Velodyne HDL32, который отправляет свои пакеты через UDP на мой компьютер. ОС — 32-битная Ubuntu и библиотека Boost v1.46.

Данные, которые я получаю через Wireshark, выглядят следующим образом:

Time     | Source         | Destination   | Protocol | Length | Source Port | Destination Port
0.000000 | 192.168.17.212 | 192.168.3.255 | UDP      | 1248   | https       | opentable

Но с этим кодом данные не отображаются (порт указан правильно):

receiver(boost::asio::io_service& io_service,
  const boost::asio::ip::address& listen_address)
: m_socket(io_service)
{

boost::asio::ip::address ipAddr = boost::asio::ip::address_v4::any();
boost::asio::ip::udp::endpoint listen_endpoint(
         ipAddr, 2368);

m_socket.open(listen_endpoint.protocol());
m_socket.bind(listen_endpoint);

m_socket.async_receive_from(
    boost::asio::buffer(m_data, max_length), m_sender_endpoint,
    boost::bind(&receiver::handle_receive_from, this,
      boost::asio::placeholders::error,
      boost::asio::placeholders::bytes_transferred));
}

void handle_receive_from(const boost::system::error_code& error,
  size_t bytes_recvd)
{
std::cout << "receive" << bytes_recvd << std::endl;


  m_socket.async_receive_from(
      boost::asio::buffer(m_data, max_length), m_sender_endpoint,
      boost::bind(&receiver::handle_receive_from, this,
        boost::asio::placeholders::error,
        boost::asio::placeholders::bytes_transferred));
}

Может ли кто-нибудь определить проблему или вам нужна дополнительная информация? Я ценю любую помощь, которую я могу получить.

ПРИМЕЧАНИЕ: Я НЕ запускаю программу с привилегиями root!

Некоторые мысли: Возможно ли, что boost::asio::ip::address_v4::any() не будет прослушивать IP . .*.255 при наличии маски подсети 255.255.255.0?

При использовании netcat данные также не отображаются. Когда я использую Windows netcat, он работает нормально. То же самое с Wireshark в Linux и Windows — работает нормально. Пробовал и с , но с тем же эффектом - нет данных.

6
задан Cœur 15 January 2017 в 03:10
поделиться