我有以下代码来读取来自网络的多播消息,用于指定的IP +端口
private static void ReceiveMessages(int port, string ip, CancellationToken token)
{
Task.Factory.StartNew(() =>
{
using (var mUdpClientReceiver = new UdpClient())
{
var mReceivingEndPoint = new IPEndPoint(IPAddress.Any, port);
mUdpClientReceiver.ExclusiveAddressUse = false;
mUdpClientReceiver.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
mUdpClientReceiver.ExclusiveAddressUse = false;
mUdpClientReceiver.Client.Bind(mReceivingEndPoint);
mUdpClientReceiver.JoinMulticastGroup(IPAddress.Parse(ip), 255);
while (!token.IsCancellationRequested)
{
byte[] receive = mUdpClientReceiver.Receive(ref mReceivingEndPoint);
Console.WriteLine("Message received from {0} ",mReceivingEndPoint);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
我有两个网络适配器,我从这个多播ip +端口发送数据(由两个wireshark实例监控每个网络适配器确认).对于两个网卡,我在wireshark上看到很多流量来自那些端口+ IP).
问题是在我的控制台上,我只看到来自一个网卡的消息.
我用netstat双重检查,我的端口上没有任何其他软件监听:

那么为什么我只从我的两张网卡中获取流量呢?
编辑:
我甚至尝试了以下方法:
private static void ReceiveMessages(int port, string ip, CancellationToken token, IEnumerable<IPAddress> ipAddresses)
{
foreach (IPAddress …Run Code Online (Sandbox Code Playgroud)