我有以下代码在我的 Windows 2003 服务器上运行良好:
static void Main(string[] args)
{
UdpClient sock = new UdpClient(5353);
IPAddress multicastIP = IPAddress.Parse("224.0.0.251");
IPEndPoint multicastEndpoint = new IPEndPoint(multicastIP, 5353);
sock.JoinMulticastGroup(multicastIP);
IPEndPoint iep = new IPEndPoint(IPAddress.Any, 0);
Console.WriteLine("Ready...");
byte[] data = sock.Receive(ref iep);
...
sock.Close();
}
然而,在我的 Windows 2008 R2 服务器(在 VMWare Workstation 内运行,将单个网络适配器配置为 NAT)上,我的应用程序没有收到任何数据包。
如果我运行wireshark,它表明数据包正在传送到机器(它们看起来正确并且它们具有正确的多播IP和端口)但应用程序层没有收到任何信息(它在.Receive中永远阻塞)
我错过了什么吗?