私は通常、指定したポートでリッスンして任意のIPを受け入れるようにソケットを設定します。同期受信はここで正しく動作することに注意してください。Boost Asio指定されたIPでリッスンするソケットを設定するサーバ
std::unique_ptr<boost::asio::ip::udp::socket> socketUDP;
socketUDP.reset(new udp::socket(io_serviceUDP, udp::endpoint(udp::v4(), 9999)));
しかし、私は本当に同じポート(9999)でリスニングだけ、単一のIPを受け入れる2つの異なるサーバーアプリケーションを持っていると思います(私はすでにIPことを知っています)。各アプリは独自のIPを持つ独自のクライアントを持っています。 しかし、いくつかの理由のために、以下は
socketUDP.reset(new udp::socket(m_io_serviceUDP, udp::endpoint(asio::ip::address::from_string("169.254.1.2"), 9999)));
は注意してください(Wiresharkのは、それを見ることができますが、アプリ内の任意のパケットを受信していません)動作しません。 1)ための答えによると:Issue with broadcast using Boost.Asioこれは実際に動作するはずです。もちろん、私の理解では、私が何か
2)提供IPが有効であることを欠けているように、非常に正確ではありません動作しますが、データは(wiresharkので確認)、問題があることである
あなたはそれが今で働いていますか? Boost 1.66のUDPマルチキャストのサンプルを使用しています。 – CaTx