我有一个软件通过端口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);
}
可以解决我的问题,但是没有抓住任何东西。
有什么建议吗?
答案 0 :(得分:0)
使用多播组仅适用于IPv6,而IPAddress.Any不适用于IPv6。你在用什么广播地址? 255.255.255.255往往不能像往常一样工作软件,设备和防火墙不加区分地丢弃这样的广播,但是使用广播到更具体的子网通常是有效的,例如:
192.168.255.255.