我正在制作一个Win RT应用程序,它连接到桌面应用程序并开始使用UDP和TCP进行通信。
我已经成功地实现了TCP通信,我可以从Win RT发送数据到桌面,也可以从桌面发送数据到Win RT。在Win RT上使用StreamSocket,在桌面上使用TcpListener。
我还成功地将Udp数据从Win RT发送到桌面,没有任何问题。但是我无法接收来自桌面发送到Win RT的数据。我使用以下代码,我没有发现任何问题,但一定有什么问题。
我已经成功地实现了TCP通信,我可以从Win RT发送数据到桌面,也可以从桌面发送数据到Win RT。在Win RT上使用StreamSocket,在桌面上使用TcpListener。
我还成功地将Udp数据从Win RT发送到桌面,没有任何问题。但是我无法接收来自桌面发送到Win RT的数据。我使用以下代码,我没有发现任何问题,但一定有什么问题。
var g = new DatagramSocket();
g.MessageReceived += g_MessageReceived;
g.BindEndpointAsync(new HostName("127.0.0.1"), "6700");
.
.
.
void g_MessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args)
{ // <- break point here.
}
断点永远无法停止代码,这意味着它永远不会收到消息。 我只能想到IBuffer,因为在我的StreamSocket上,我应该通过reader.GetBuffers()获取字节而不是reader.GetBytes()。然而,在Win RT上需要考虑的事情就是这个。因为在Tcp上,我只发送字节并且在Win RT中获取缓冲区,所以DatagramSocket也应该是一样的。
- reader = DataReader
谢谢大家。