Hallo,
ich will mich per socket mit einem Server verbinden. Vorher will ich aber testen ob dieser überhaupt online ist. Wenn nicht soll halt das Programm ein Disconnect ausgeben.
Wie kann man sowas machen in Python?
Wie testet man ob ein Server exestiert ?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wenn du dich zu verbinden versuchst und der Host nicht existiert (oder genauer: auf dem Host kein solcher Port offen ist zu dem du dich verbinden willst), dann gibt es eben eine Exception. Das ist der sicherste und auch sauberste Weg.Treehouse hat geschrieben:ich will mich per socket mit einem Server verbinden. Vorher will ich aber testen ob dieser überhaupt online ist. Wenn nicht soll halt das Programm ein Disconnect ausgeben.
EyDu: Anpingen ist nicht genau, es kann auch einfach sein, dass ICMP Ping blockiert wird. Dann ist der Host online, aber ein Ping schlägt fehl.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ok vielen dank für eure hilfe. Dann werde ich das so machen. Schade ist nur das der user dann soviel Fehler Output auf der Konsole bekommt. Ich hätte es lieber gesehen wenn einfach nur das "Disconnect" da stehen würde.
Aber gut wenns so muss ist es halt so.
Edit: Hat sich erledigt vielen dank nochmal.
Aber gut wenns so muss ist es halt so.
Edit: Hat sich erledigt vielen dank nochmal.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Der User sieht doch gar nichts, wenn du die Exception richtig abfängst.Treehouse hat geschrieben:Ok vielen dank für eure hilfe. Dann werde ich das so machen. Schade ist nur das der user dann soviel Fehler Output auf der Konsole bekommt. Ich hätte es lieber gesehen wenn einfach nur das "Disconnect" da stehen würde.
Aber gut wenns so muss ist es halt so.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ob man von richtigem Abfangen sprechen kann, wenn der Nutzer gar nichts sieht, sei mal dahin gestellt... ich mag es schon, wenn Firefox mir sagt, wenn das Netzwerk nicht stimmtLeonidas hat geschrieben:Der User sieht doch gar nichts, wenn du die Exception richtig abfängst.Treehouse hat geschrieben:Ok vielen dank für eure hilfe. Dann werde ich das so machen. Schade ist nur das der user dann soviel Fehler Output auf der Konsole bekommt. Ich hätte es lieber gesehen wenn einfach nur das "Disconnect" da stehen würde.
Aber gut wenns so muss ist es halt so.
Fazit: Etwas sollte der Nutzer schon sehen, und zwar am besten die Exception-Message. Den Traceback sollte man aber im Idealfall mitloggen, um das Debugging zu erleichtern.
- roschi
- User
- Beiträge: 225
- Registriert: Samstag 29. März 2008, 18:58
- Wohnort: Thueringen, Deutschland
- Kontaktdaten:
hallo,
am besten du machst das mit einer try/except-anweisung:
wenn der host jetzt nicht erreichbar ist, dann wird dem user gesagt, dass es fehlgeschlagen ist.
mfg
roschi
am besten du machst das mit einer try/except-anweisung:
Code: Alles auswählen
import socket
ip = "127.0.0.1"
port = 9009
x = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
x.connect((ip, port))
except socket.error:
print "Fehlgeschlagen"
mfg
roschi