0
我有以下的代碼,我的Windows 2003服務器上正常工作的多播:無法接收的Windows Server 2008
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工作站內有一個網絡適配器運行配置爲NAT)我的應用程序不會收到任何數據包。
如果我運行wireshark,它會顯示數據包正在傳送到計算機(它們看起來正確,並且它們具有正確的多播IP和端口),但應用程序層不會收到任何消息(它會永遠阻止.Receive )
我錯過了什麼嗎?
想要添加 - 當本地機器發送數據包(同一臺機器上的發送器和接收器)時,代碼在Win2008上也能正常工作。即使Wireshark顯示數據包正在到達(所以我懷疑VMWare有問題),它在從內部網絡(192.x.x.x)的外部機器發送時不起作用。從內部機器發送時,它通過接口IP發送,而不是回送IP。 – 2010-02-16 21:12:09