| 

.NET C# Java Javascript Exception

6
Wie kann ich prüfen, ob der Rechner, auf dem meine Software läuft, gerade über eine Internetverbindung verfügt? Klar, ich kann irgendwie einen Ping auf einen Server loslassen und schauen, was zurückkommt. Aber da muss es doch eine professionellere Lösung geben, oder?
07.03.2011
Mojito 61 2
3 Antworten
9
Kurz und knapp: gar nicht. Es ist unmöglich diese Frage immer korrekt zu beantworten. Siehe dazu auch die immer wieder passende Geschichte von Marian Aldenhövel.

ABER: In den meisten Fällen möchte man etwas ganz anderes erreichen. Was ist denn der Zweck dieser Prüfung?
07.03.2011
m.fuchs 1,6k 8
1
Die Erklärung in der Geschichte finde ich echt gut.
nabuchodonossor 07.03.2011
1
Nette Geschichte, kannte ich nicht, obwohl es älter zu sein scheint!
Achso 23.05.2011
1
Möglicherweise hilft Dir die Klasse NetworkChange weiter. Aber 100% Zuverlässigkeit solltest Du nicht erwarten und die Aussagekraft der beiden Events, die darin bereitgestellt werden, nicht überbewerten - siehe die von m.fuchs verlinkte Geschichte.
07.03.2011
Matthias Hlawatsch 8,4k 2 8
0
Meine Empfehlung:

Gehe einfach davon aus, dass eine Internetverbindung besteht und nutze sie wofür auch immer du sie brauchst. Wenn der entsprechende Vorgang fehlschlägt, zeigst du eine Fehlermeldung an oder behandelst den Fall entsprechend geeignet anders. Da kommst du eh nicht drumherum, selbst wenn du vorher wüsstest, ob eine Internetverbindung besteht oder nicht.

Und wenn dein Programm aus welchen Gründen auch immer einen speziellen "Offline"-Modus braucht, in dem eben gerade nicht versucht werden soll, eine Internetverbindung zu nutzen, dann baue diesen Modus explizit ein und lass den Benutzer ihn aktivieren und deaktivieren, weil er es halt am besten weiß.

Diese Grundidee kann man dann je nach Anwendungsfall unterschiedlich komfortabel ausgestalten. (Beispiel 1: "Der Vorgang 'ABC' schlug fehl. Möchten Sie offline arbeiten?" / Beispiel 2: "Sie haben das Programm beim letzten mal im Offline-Modus verlassen, möchten Sie jetzt online arbeiten?")

Machen etliche andere Programme auch so, die es sicher anders machen würden, wenn es gehen würde. (Prominente Beispiele: MS Outlook, Mozilla Firefox und viele andere mehr!)

Fazit: Internetverbindung vorhanden? Juckt dich nicht (wirklich)!
23.05.2011
Achso 310 5

Stelle deine Server-Frage jetzt!
InnoGames GmbH
infounit Software GmbH
myfactory International GmbH