Windows Phone 8外部IP与本地主机名

本文关键字:主机 IP Phone 外部 Windows | 更新日期: 2023-09-27 18:30:06

我的意图是在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方法,尽管:

  • 通过互联网向10.146.8.159和192.230.159.176发送UDP消息
  • 注册ID_CAP_NETWORKING

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

(->第四个问题:还有人认为用silverlight开发wp比这个到处都是C++的新api更好吗?)

Windows Phone 8外部IP与本地主机名

嗨,我发现了问题所在:

缺少UDP打孔是造成这种行为的原因,添加UDP打孔是使其工作的解决方案。