Erkennen eines Verbindungsabruchs und automatischer reconnec

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
pl3ktrum
User
Beiträge: 6
Registriert: Dienstag 18. Juni 2013, 09:27

Hallo Leute!

Ich arbeite momentan an einem kleinen IRCbot, dieser funktioniert bisher tadellos und tut was er soll.
Nun habe ich diesen Bot auf meinem kleinen Server zuhause laufen und finde es nervig das dieser sich immer beendet wenn mein Provider den automatischen reconnect durchführt.
Ich würde gerne dafür sorgen das der Bot merkt das die Internetverbindung weg ist und sich automatisch wieder verbindet sobald diese wieder da ist, weiss aber gar nicht wie sich das realisieren ließe.

Hier die Connectionklasse: http://pastebin.com/mMqVSd9k
Über Tipps und Tricks wäre ich sehr dankbar =)
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Da gibt es mehrer Ansätze, aber funktioniert dein IRCbot überhaupt? Fehlt da nicht PING? PONG! Behandlung?

Zur Behandlung der Verbindung wenn dein Internet ausfällt dann beendet sich dein Programm nicht einfach, es gibt einen Fehler und diesen kannst du behandeln.
pl3ktrum
User
Beiträge: 6
Registriert: Dienstag 18. Juni 2013, 09:27

Der Bot Läuft ohne Probleme, PingPong usw. ist auch drin, ich habe diese Sachen im paste jetzt einfach außen vor gelassen da die connectionklasse denke ich das wichtigste ist.
Wie kann ich denn erkennen ob die Internetverbindung weg ist? gibt es sowas wie socket.isconnected oder so?
Leider hilft mir die Dokumentation nicht wirklich weiter bzw ich finde es nicht. =(
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@pl3ktrum: sockets verhalten sich ähnlich wie alle anderen Fileobjekte auch: recv/read/readline liefert einfach einen leeren String zurück, write/send meldet sich mit eine Exception.
Antworten