2012-11-19 105 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地址。 “本地主机”可以是系统的突发事件。 –