Да, действительно...
Исправил:
boost::asio::ip::address loc_address = boost::asio::ip::address::from_string("192.168.2.2");
boost::asio::ip::address listen_address = boost::asio::ip::address_v4::any();
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.to_v4(), loc_address.to_v4()));
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)));
И всё-равно ничего не получает. Прямо беда какая-то, хоть в исходниках tcpdump ковыряйся, чтобы оттуда нужный код взять, ведь он-то работает...