Опитвам се да разбера как да получавам 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();