0
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わかりません。私は 'listen_endpoint'に' multicast_address'を使うのは間違っていることを知っています。それは今働きますか? – kenba
間違ったバインドがあっても、 – surfcode