我的
Windows移动应用程序(使用紧凑框架用C#编写)需要知道特定机器是否处于活动状态.
为了实现这个目标,我想使用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,因为它总是可以访问的(如果没有,则表示网络已关闭).
解决方法
这是一个很好的问题,并进行了一些挖掘
我知道这个答案可能会迟到,但试一试