2009-04-28 108 views
1

C#2008C#測試恆定的網絡連接

我開發了一個軟件電話應用程序。

但是,我必須測試一個不斷的互聯網連接。

我想有在另一個線程不斷地坪一個IP地址上運行的功能。但是,我可以使用什麼IP地址來確定我的應用程序是否仍連接到Internet。

非常感謝,

回答

1

你只是要檢查是否有網絡連接,或者如果網絡實際上出去到互聯網。

在第一種情況下,然後執行它在"How do I check for an network connection question"說。這會讓你知道電纜是否從電腦背面拔出,但它不會告訴你調制解調器或電話線是否有故障(例如)

第二種情況比較複雜,至今據我所知,除了不斷地查詢某個IP地址之外,沒有辦法檢查它。在簡單的情況下,你可以在一個單獨的線程中每隔30秒鐘對一個定時器進行ping一個網站,並在決定互聯網關閉時提出事件。請注意,雖然ICMP ping不是100%可靠,但即使連接正常,它們偶爾也會丟失。

如果你真的想變得複雜,你可以創建一個Windows服務提出這些事件,則多個應用程序可以在鉤和消費的信息,但多數民衆贊成有點超出我的Windows knowlage雖然編程。

1

請參閱本SO問答:C# - How do I check for a network connection

如果僅限於.NET Compact Framework中,檢查出的免費OpenNETCF library

+0

這會告訴你局域網是否可用,但是如果廣域網不是(例如,如果你在NAT防火牆後面) – 2009-04-28 07:39:06

+0

return NetworkInterface.GetIsNetworkAvailable();剛剛測試過。它將始終返回true。 – ant2009 2009-04-28 07:56:39

1

我會想到telnet命令直接登錄到到www.google.com的80端口將是你最好的選擇。

如果連接打開,一切正常。

不知道這將是多麼容易在CF實施雖然。