我的 windows 移动应用程序(使用紧凑框架用 C# 编写)需要知道特定机器是否处于事件状态。
为了实现这个目标,我想到了使用 ping 机制。我尝试使用在 opennetcf 框架中实现的 Ping 类(.NET 框架的 System.Net.NetworkInformation.Ping 类不是紧凑框架的一部分)。
因为我给 Ping.Send 函数一个主机名,它首先尝试解析这个主机名并检索一个 IP 地址。
但我观察到以下问题:
如果第一个 dns 解析失败(因为此时网络已关闭),并且如果应用程序立即再次尝试发送 ping,它也会失败,即使网络不再记录下来。
我检查了一个著名的网络协议(protocol)分析器,我发现只发送了有关第一个 dns 解析的请求。不发送有关第二次 ping 的 dns 解析的请求。
为什么没有发送第二个 dns 请求?
此类 Windows Mobile 设备上是否有任何 dns 缓存机制?
如果是,是否可以通过编程方式刷新此机制?
编辑:我放弃了寻找解决此 DNS 刷新的方法。
我选择 ping IP 地址而不是名称机器。
ping 硬编码地址 IP 的问题是我们必须 100% 确定这个 IP 不会改变。
可以使用网关 IP,因为它始终可以访问(如果不能访问,则表示网络已关闭)。
最佳答案
这是一个很好的问题,并进行了一些挖掘
我知道这个答案可能会迟到,但试试看
http://social.msdn.microsoft.com/Forums/en-US/vssmartdevicesnative/thread/7eda3979-6424-4702-89f4-1f586b613b01
关于.net - 如何以编程方式刷新 Windows Mobile 中的 DNS 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560815/