2013-02-26 11 views
9

Wdrożyłem w C# protokół wykrywania (DNS-SD). Mam mały problem: kiedy uruchomiony jest mój program, muszę wykryć, kiedy ustanawiane jest nowe połączenie (podłączony kabel sieciowy lub sieć Wi-Fi), aby ogłosić się również w tej sieci.Poinformowany, kiedy kabel sieciowy jest podłączony/podłączony do Wi-Fi

Ale jak to wykryć? Widziałem jakiś kod, aby uzyskać aktualny stan karty sieciowej, ale nie ma zdarzenia, i chcę uniknąć dokonywania pollingu na stanach kart sieciowych.

+1

Sprawdź to: http://stackoverflow.com/questions/1387650/how-to-get-an-event-whenever-the-network-cable-is-connected- or-disconnected –

Odpowiedz

4

Możesz użyć metody GetIstNetworkAvailable -metody, aby sprawdzić, czy w ogóle jest połączenie sieciowe. Ilekroć zmienia on zdarzenie get NetworkAvailabilityChanged zostaje zwolnione. Aby uzyskać więcej informacji, zobacz this question.

Jeśli chcesz śledzić dostępność różnych NetworkInterfaceshere jest próbką, jak to zrobić.

+0

Mogłem źle zrozumieć, ale Uważam, że PO potrzebuje więcej informacji - np. Podłącz LAN (wydarzenie), Connect Wifi (cichy?) Odłącz LAN (cichy?), Odłącz Wi-Fi (zdarzenie). – Basic

+1

Zdarzenie NetworkAvailabilityWebanged powinno zostać wywołane, gdy zmieni się dostępność jednego z dostępnych interfejsów sieci. Następnie możesz sprawdzić, które interfejsy sieciowe są dostępne. Zaktualizowałem odpowiedź;) – Carsten

+1

Cześć, myślę, że z twoim ostatnim przykładem, mógłbym zrobić to, czego potrzebuję – J4N