2010-04-01 70 views
4

我的Windows移动应用程序(用C#编写的紧凑框架)需要知道某个特定机器是否处于活动状态。如何以编程方式刷新Windows Mobile中的DNS缓存?

为了实现这个目标,我想使用一个ping机制。我试图使用在opennetcf框架中实现的Ping类(.NET Framework的System.Net.NetworkInformation.Ping类不是紧凑框架的一部分)。

因为我给Ping.Send函数一个主机名,它首先尝试解析这个主机名并检索一个IP地址。

但我观察到以下问题: 如果第一个dns解析失败(因为此时网络已关闭),并且如果应用程序立即再次尝试发送ping,则它也会失败,即使网络是记下来了。 我检查一个着名的网络协议分析仪,我看到只有关于第一个dns分辨率的请求被发送。有关第二次ping的DNS解析请求不会被发送。

为什么不发送第二个DNS请求? 在这种Windows Mobile设备上是否有任何dns缓存机制? 如果是的话,这个机制可以编程刷新吗?

编辑:我放弃了找到这种DNS冲洗的解决方案。 我选择ping IP地址而不是名称机器。 ping硬编码地址IP的问题是我们必须100%确定这个IP不会改变。 可以使用网关IP,因为它始终可达(如果不是,则表示网络已关闭)。

回答

相关问题