こんにちは、PC に 2 つの Networkadapter があり、選択したネットワーク インターフェイスのグループ 239.0.0.222 ポート 9050 に udp マルチキャストを送信したいと考えています。ただし、最初のインターフェイスでのみ機能し、別の NIC を選択するとデータは送信されません。
localIP は、選択したアダプターのローカル IP です。
送信者コード:
IPAddress localIP = getLocalIpAddress();
IPAddress multicastaddress = IPAddress.Parse("239.0.0.222");
IPEndPoint remoteep = new IPEndPoint(multicastaddress, 9050);
UdpClient udpclient = new UdpClient(9050);
MulticastOption mcastOpt = new MulticastOption(multicastaddress,localIP);
udpclient.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, mcastOpt);
udpclient.Send(data, data.Length, remoteep);
EDIT1:
アダプターのローカル IP のコード:
NetworkInterface.GetAllNetworkInterfaces()[adapterIndex].GetIPProperties().UnicastAddresses[0].Address;
EDIT2,5:
また、同じ reuslt で両方を試してみると、Wireshark は 2 番目のアダプターでのマルチキャスト グループの正しい参加を表示します
udpclient.JoinMulticastGroup(multicastaddress);
udpclient.Client.Bind(remoteep);
EDIT3:
別のPCで試しましたが、同じ問題が再び発生し、Adapter1が実行され、他のすべてのPCでは何も送信されません。
私が試したもう1つのことは、Windows XP構成で最初の2つのアダプターの順序を切り替えることです。次に、新しい最初のアダプターは機能しますが、新しい2番目のアダプターは何も送信しません。