同じポートで複数のマルチキャスト ソースからデータを受信するアプリケーションがあります。データを受信できました。ただし、各グループの統計 (つまり、受信したメッセージ数、受信したバイト数) を考慮しようとしており、すべてのデータが混同されています。この問題を解決する方法を知っている人はいますか?送信者のアドレスを確認しようとすると、マルチキャスト アドレスではなく、送信側マシンの IP です。
次のソケット オプションを使用しています。
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = inet_addr("224.1.2.3");
mreq.imr_interface.s_addr = INADDR_ANY;
setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));
また:
setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &reuse, sizeof(reuse));
助けていただければ幸いです!!!