2013-12-11 17 views
0

我似乎無法讓我的小測試應用程序在運行Windows Server 2003的特定計算機上發送UDP多播數據包。我讓它設置爲發送包的谷歌公共DNS和另一個到239.192.250.250。它運行良好,沒有任何錯誤。但是在Wireshark輸出中,只有Google數據包出現。有任何想法嗎?C#控制檯應用程序不會在Windows Server 2003上發送UDP多播數據包

static void Main(string[] args) 
{ 
    var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
    var data = ASCIIEncoding.UTF8.GetBytes("hello world"); 
    socket.SendTo(data, new IPEndPoint(IPAddress.Parse("8.8.8.8"), 80)); 
    socket.SendTo(data, new IPEndPoint(IPAddress.Parse("239.192.250.250"), 80)); 
    Console.ReadKey(); 
} 

而這裏的Wireshark的輸出:

No. Time  Source  Destination  Protocol Length Info 
205 1.83925300 ********** 8.8.8.8   UDP  53  Source port: 62432 Destination port: http 

在我測試過,包括在Windows 2008 R2服務器的每個其他機器,我得到的東西的影響:

No. Time  Source  Destination  Protocol Length Info 
58 4.52926800 ********** 8.8.8.8   UDP  53  Source port: 56530 Destination port: http 
60 4.52940400 ********** 239.192.250.250 UDP  53  Source port: 56530 Destination port: http 
+0

Windows 2003和2008服務器是否連接到相同類型的路由器?因爲如果您正在使用交換機路由器,Wireshark無法看到來自另一臺計算機的所有數據包。 –

+0

Windows 2003和2008服務器實際上位於完全不同的網絡上。 2008年是Rackspace雲服務器,2003年是客戶的內部服務器。我提出這個問題是因爲我想忽略它可能是Windows Server的侷限性。該測試也在同一客戶端網絡中的Window 7盒子上完成,並且工作正常。所以據我所知,我只是在他的服務器上遇到問題。 –

+0

當我發佈wireshark流量時,我認爲我看到了傳出流量。假設情況如此,路由器是否可能會發生干擾? wireshark不會坐在路由器和網絡接口之間嗎?無論網絡設置如何,我仍會認爲我應該看到兩個IP地址的傳出流量。 –

回答

1

如果您使用的是Network switch,則它們只將數據包路由到目標機器的連接。而未交換的集線器將數據包廣播到所有端口。

Wireshark執行數據包嗅探,因此它無法查看交換路由器上的所有數據包。

這裏是摘自Switch Reference @ Wireshark

Wireshark FAQ指出的,在一個交換網絡環境中捕獲可以被證明是具有挑戰性的。單個交換機端口將接收指定給該特定端口的廣播,多播和單播通信。在大多數情況下,它不會接收其他端口的單播流量,這是您可能試圖捕獲的。

相關問題