我试图弄清楚如何接收由一组设备广播的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();