Jaki jest najlepszy sposób ustalenia, czy jest dostępne połączenie sieciowe?
c#
networking
Ćwiek
źródło
źródło
Odpowiedzi:
Możesz sprawdzić połączenie sieciowe w .NET 2.0 za pomocą
GetIsNetworkAvailable()
:Aby monitorować zmiany adresu IP lub zmiany dostępności sieci, użyj zdarzeń z klasy NetworkChange :
źródło
NetworkInterface.GetIsNetworkAvailable()
był bardzo zawodny w mojej aplikacji (.NET 4.5, Windows 10), szczególnie podczas pracy na maszynie wirtualnej. Obsługa zdarzeń odNetworkAvailabilityChanged
była niezawodna.Zaznaczona odpowiedź jest w 100% w porządku, jednak zdarzają się przypadki, gdy standardowa metoda jest oszukiwana przez wirtualne karty (wirtualne pudełko, ...). Często pożądane jest również odrzucenie niektórych interfejsów sieciowych na podstawie ich szybkości (porty szeregowe, modemy, ...).
Oto fragment kodu, który sprawdza te przypadki:
źródło
Microsoft Windows Vista i 7 używają technologii NCSI (wskaźnik stanu łączności sieciowej):
źródło
Wywołaj tę metodę, aby sprawdzić połączenie sieciowe.
Umieść poniższy wiersz kodu.
źródło