Python-socket-Programmierung - Ausnahmebehandlung

Arbeite ich an einem basic-socket-client-Programm in python und ich bin mir nicht ganz sicher, wie Sie Sie behandeln von Ausnahmen. Dies ist, was ich getan habe bis jetzt:

TCP_IP      = '..............'
TCP_PORT    = 4950
MESSAGE     = "o3"
BUFFER_SIZE = 2048
data        = ""

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.settimeout(5.0)

try:
    s.connect((TCP_IP, TCP_PORT))
except socket.error:
    #write error code to file
    s.close()

try:
    s.sendall(MESSAGE)
except socket.error:
    #write to file or whatever
    s.close()

try:
    data = s.recv(BUFFER_SIZE)
except socket.error:
    #write to file or whatever
    s.close()

finally:
    s.close()

Den code so funktioniert, wie ich will, aber ich bin mir nicht sicher, ob ich sollte verschachteln von try/catch-Blöcken oder nicht? Sollte ich socket.socket in try - /catch-block zu?

Zweite Frage, was wird s.settimeout() in meinem Fall tun? Soweit ich das verstanden Sie in der Dokumentation, es wird eine Ausnahme nach 5 Sekunden, aber für was? Nur connect oder wird es das gleiche tun für sendall und recv?

InformationsquelleAutor Rok Dolinar | 2016-07-23
Schreibe einen Kommentar