.net - 如何以编程方式刷新 Windows Mobile 中的 DNS 缓存?

标签 .net compact-framework network-programming dns

我的 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/

相关文章:

c# - BitVector32 - 第一位为真

c# - WPF 的控件属性是否存在性能劣势?

c# - 如何反序列化这种类型的数据结构

c# - 紧凑框架上线程的 AsyncCallback

VS2005 中的 C# : Can a device project target both full framework and CF?

c# - 检索进程网络使用情况

java - Apache MINA 服务器在 60 秒后关闭 Activity UDP "session"

.net - 在 Windows Server 启动时自动运行程序

.net - 如何在 ASP.NET Web 应用程序中为 Windows Mobile 创建 SQL Compact 3.5 数据库?

c# - SslStream 读取所有字节