2010-04-01 74 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,因爲它始終可達(如果不是,則表示網絡已關閉)。

回答

相關問題