2012-11-19 50 views
0

我正在申請。服務器端適用於桌面和客戶端適用於Windows 8(地鐵APP-的.Net的Windows商店)UdpClient無法接收來自DatagramSocket

這裏是我的服務器代碼:

var udpServer = new UdpClient(7800); 
udpServer.BeginRecieve(new AsyncCallback(OnUdpRecieve), null); 
. . . 
private void OnUdpRecieve(IAsyncResult result) 
{ 
    byte[] data = udpServer.EndReceive(result, ref peerEndPoint); 
    udpServer.BeginReceive(new AsyncCallback(OnUdpRecieve), null); 
} 

,這裏是在Win RT我的客戶端代碼:

var udpClient = new DatagramSocket(); 
await udpClient.ConnectAsync(new HostName("localhost"), 7800); 
var udpWriter = new DataWriter(udpClient.OutputStream); 
udpWriter.WriteBytes(new byte[] {0, 3, 5}); 
await udpWriter.StoreAsync(); 

但在服務器端我沒有得到任何東西。我想也許我做錯了什麼。

謝謝

回答

-1

那麼我讀了一個關於MSDN論壇的問題。這不是我的答案,但有一點,「loclhost」與「127.0.0.1」不同。

當您使用「localhost」時,您強制數據報使用IPv4,並且當您使用「127.0.0.1」時,強制數據報套接字使用IPv6。

這就是要點;)

+1

也許你有向後的IPv4和IPv6? 「127.0.0.1」是一個IPv4地址。 「:: 1」是等效的IPv6地址。 「本地主機」可以是系統的突發事件。 –