Я совершил ошибку в своей программе, используя boost :: asio, поскольку при получении многоадресных данных он связывается с адресом многоадресной передачи, а не с локальным интерфейсом ip. Ошибок нет. Как-то на многопользовательском Linux-хосте он все равно получал многоадресные данные. Но когда я запускаю его на другом многоквартирном ящике, он не мог. Что это сделал?boost asio multicast join
boost::asio::ip::address multicast_address(boost::asio::ip::address::from_string("239.1.1.100"));
unsigned port(12345);
boost::asio::io_service io;
boost::asio::ip::udp::socket socket;
boost::asio::ip::udp::endpoint listen_endpoint(multicast_address, multicast_port);
socket.open(listen_endpoint.protocol());
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));
спасибо за ответ. Я понял, что код имеет ошибку и должен быть локальным интерфейсом приемника. Но то, что я хочу знать, это то, что теперь делает этот блок кода. – surfcode
Извините @surfcode Я не знаю, я знаю только, что использование 'multicast_address' для' listen_endpoint' неверно. Он работает сейчас? – kenba
Он всегда работал, даже с неправильным связыванием – surfcode