C# – Verbindungsstatus eines Sockets feststellen – Teil 2

Ich schrieb schon zuvor einmal darüber, wie ich den Verbindungsstatus eines C#-Sockets überprüfe. Während der Testphase eines neuen Projekts, bei dem ich viele Mobilgeräte gleichzeitig über verschiedene Mobilfunktechnologien steuere, musste ich periodisch überprüfen, ob die verbundenen Clients überhaupt noch ansprechbar waren oder nicht. Also nutzte ich meine erprobte IsConnected-Methode und staunte nicht schlecht, als mir Code steif und fest behauptete, dass meine Verbindung noch bestünde, obwohl die Gegenstelle zu Testzwecken komplett ausgeschaltet wurde. Ich konnte sogar Daten in den Socket schreiben, ohne dass es Fehler hagelte. Klasse.

Ich erspare euch jetzt die wortreiche Beschreibung wie ich tagelang auf den Code starrte und meine Fingernägel rillen im Tisch hinterließen und mache es kurz: Erst nachdem ich das KeepAlive-Sendeintervall des Sockets drastisch heruntersetzte, funktionierte auch wieder meine IsConnected-Überprüfung wieder.

Hierzu fand ich im Internet die folgende Extension-Methode die, einmal im Namespace geladen, ihre Funktionalität jedem Socket-Objekt zur Verfügung stellt.

Die Benutzung des Codes ist sehr einfach:

Mein Fazit?  Ich muss dringend von den Sockets wegkommen und etwas nutzen das mehr „High-level“ ist. Wenn ich weiterhin mit Sockets arbeite ist das einzige was „High-level“ ist nur mein Blutdruck.

Kolja Engelmann

Technikfan, Freizeitprogrammierer, selbsternannter Toolking und vermutlich größter Drachenfan Deutschlands blogged hier die Lösungen zu IT-Problemen die ihm über den Weg laufen, kleine Softwaretools, nostalgische Anfälle und missbraucht das Ganze gern auch mal als privates Tagebuch und Fotoalbum.

Das könnte Dich auch interessieren...

1 Antwort

  1. Brian Dahl sagt:

    Ich habe auch das schon probiert mit wenig erfolg, ich sehe zwar wenn ich die andere Seite vom Netz nehme im Wireshark das er es aufgibt weiter die KeepAlive Message zusenden, doch ich bekomme das im Programm nicht mit. Wenn ich den Socket mit Connected abfrage behauptet er immer das er Connected sei…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.