在C#中收听UDP消息

时间:2013-11-14 00:54:34

标签: c# sockets udp

我有一个软件通过端口4747发送/广播UDP消息,我想在我的C#应用​​程序上获取这些消息。我已经使用过Microsoft网络监视器并捕获了那些UDP消息,但在我的C#程序中尝试了很多东西并且无法获得任何这些消息。 NetworkMonitor中的消息日志如下: 88922 00:46:57 14/11/2013 862.7592038 MM-B6DD62A 224.74.74.74 UDP UDP:SrcPort = 1053,DstPort = 7474,长度= 15 {UDP:1001,IPv4:984}

邮件正在从网络中的一台计算机发送到其他计算机。

我期待一些简单的事情:

UdpClient udp = new UdpClient(7474);
udp.BeginReceive(Receive, new object());
 public void Receive(IAsyncResult ar)
    {
        Console.WriteLine("Getting some thing...");
        IPEndPoint ip = new IPEndPoint(IPAddress.Any, 7474);
        byte[] bytes = udp.EndReceive(ar, ref ip);
        string message = Encoding.ASCII.GetString(bytes);
        Console.WriteLine(message);
    }

可以解决我的问题,但是没有抓住任何东西。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用多播组仅适用于IPv6,而IPAddress.Any不适用于IPv6。你在用什么广播地址? 255.255.255.255往往不能像往常一样工作软件,设备和防火墙不加区分地丢弃这样的广播,但是使用广播到更具体的子网通常是有效的,例如:

192.168.255.255.