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更好吗?)
嗨,我发现了问题所在:
缺少UDP打孔是造成这种行为的原因,添加UDP打孔是使其工作的解决方案。