我正在制作一个连接到桌面应用程序的 Win RT 应用程序,它们开始以 UDP 和 TCP 进行通信。
我已经成功实现了 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 也应该如此。
- 阅读器 = 数据阅读器
感谢你们。