0
我在使用boost :: asio的程序中犯了一個錯誤,因爲在接收多播數據時,它綁定到多播地址而不是本地接口ip。沒有錯誤。不知何故,在多主機Linux主機上,它仍然收到組播數據。但是當我在另一個多家庭盒子上運行它時,它不能。這是做什麼的?boost asio多播加入
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我不知道,我只知道'listen_endpoint'使用'multicast_address'是錯誤的。它現在工作嗎? – kenba
它一直在工作,即使是錯誤的綁定 – surfcode