2010-02-16 67 views
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 )

我錯過了什麼嗎?

+0

想要添加 - 當本地機器發送數據包(同一臺機器上的發送器和接收器)時,代碼在Win2008上也能正常工作。即使Wireshark顯示數據包正在到達(所以我懷疑VMWare有問題),它在從內部網絡(192.x.x.x)的外部機器發送時不起作用。從內部機器發送時,它通過接口IP發送,而不是回送IP。 – 2010-02-16 21:12:09

回答

0

我已經得到它的工作,但我不知道問題是什麼。它可能是一個不正確的機器上的防火牆配置(我試圖讓這個應用程序防火牆友好),但超出了這個線程的範圍。

相關問題