Прием UDP-рассылок

Я пытаюсь выяснить, как получать пакеты UDP, которые передаются набором устройств. Я вижу, как они приходят с помощью Wireshark, но не могу понять, как их получить в моем приложении. Пакеты рассылаются всем устройствам в сети через один и тот же порт. Мне нужно иметь возможность получать их с любого отправляющего IP-адреса. У меня также есть 2 карты NIC, если это имеет значение. Мне нужно слушать только 1, но я не уверен, что мне нужно указывать это. Я пробовал разные вещи с UdpClient, но не повезло.

192.168.1.20 255.255.255.255 UDP 768 Source port: 3001 Destination port: 3002

bool done = false;

UdpClient listener = new UdpClient(3001);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, 3002);

string received_data;
byte[] receive_byte_array;

try
{
    while (!done)
    {
        Debug.WriteLine("Waiting for broadcast");

        receive_byte_array = listener.Receive(ref groupEP);
        Debug.WriteLine("Received a broadcast from {0}", groupEP.ToString() );
        received_data = Encoding.ASCII.GetString(receive_byte_array, 0, receive_byte_array.Length);
        Debug.WriteLine("data follows \n{0}\n\n", received_data);
    }
}
catch (Exception e)
{
    Console.WriteLine(e.ToString());
}

listener.Close();

person thecaptain0220    schedule 02.07.2014    source источник
comment
возможный дубликат Получить ответ на широковещательную рассылку UDP (C#)   -  person admdrew    schedule 03.07.2014
comment
Я не уверен, что этот пост даже имеет рабочее решение. В любом случае это не сработало для меня. Я добавлю то, что пробовал, но я не уверен, что это правильный подход.   -  person thecaptain0220    schedule 03.07.2014
comment
Я предполагаю, что это либо трансляция, либо тот факт, что у меня 2 карты NIC. Пакеты UDP не отправляются напрямую на мою машину, но я вижу их в wireshark.   -  person thecaptain0220    schedule 03.07.2014