我有以下代码,在我的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();
}
然而,在我的Windows2008 R2服务器上(在配置为NAT的单个网络适配器的VMware工作站内运行),我的应用程序没有收到任何数据包。
如果我运行wireshark,它会显示数据包正在被传送到机器上(它们看起来是正确的,并且它们有正确的多播IP和端口),但是应用层不会接收任何信息(它永远阻塞在.receive中)
我错过什么了吗?