0

我的目的是在 Windows Phone 8 上通过互联网接收 UDP 消息。

-> 第一个问题:假设这是可能的,我错了吗?

测试设置:

  • WIFI关闭,蜂窝数据开启
  • 运行 NetworkInformation.GetHostNames() 我得到一台 IANA 网络代码为 344 的主机,IP 地址为“10.146.8.159”。
  • 在浏览器中同时打开 icanhazip.com,我得到一个 IP 地址“192.230.159.176”。

-> 第二个问题:为什么这两个IP地址不同?

我的代码是:

public async void Start()
{
  m_rxSocket = new DatagramSocket();
  m_rxSocket.MessageReceived += MessageReceived;
  await m_rxSocket.BindServiceNameAsync("57000");
}

private async void MessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs socketEventData)
{
  // This is never called
}

问题是 MessageReceived 方法从未被调用,尽管:

  • 通过 Internet 向 10.146.8.159 和 192.230.159.176 发送 UDP 消息
  • 注册 ID_CAP_NETWORKING

-> 第三个问题:为什么上面的设置没有收到消息?

(->第四个问题:还有其他人认为使用silverlight进行wp开发优于这种到处都是C++的新api......?)

4

1 回答 1

0

嗨,我发现了问题所在:

缺乏 UDP 打孔是该行为的原因,并添加了 UDP 打孔解决方案以使其工作。

于 2013-09-15T13:27:36.713 回答