接收UDP广播

时间:2014-07-02 20:19:24

标签: c# udp broadcast udpclient

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

0 个答案:

没有答案