Mehrere Sockets - except aber global

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
andihit
User
Beiträge: 5
Registriert: Freitag 8. September 2006, 21:47

Hi,

Ich habe 2 Sockets. Der eine Socket ist immer aktiv und wartet auf Verbindung. Sobald dieser eine Verbindung bekommen hat soll ein zweiter Socket aktiviert werden. Da aber bei der Socket-recv-Funktion Fehler auftreten können, habe ich dies in einen -Block geschrieben.
Darunter:

Code: Alles auswählen

except socket.error
.

Jedoch bricht die 1. Verbindung ab, wenn die 2. Verbindung einen Fehler hat ("socket" ist ja global und nur die Klasse).

Also, kann ich irgendwie feststellen, zu welchem Socket dieser Fehler gehört? Oder besser, den Fehler nur aufrufen, wenn dieser Fehler zu dieser Verbindung gehört.

Also so z.B.:

Code: Alles auswählen

socket1 = socket.socket( );
[...]
try:
	print s.recv(512);

except socket.error WENN DER FEHLER VON socket1 KOMMT:
	return "Fehler beim Socket 1";

P.S.: Solltet ihr irgendwas nicht verstanden haben, fragt mich einfach danach :wink:.

Vielen Dank für Antworten,
mfG Andreas
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Hi

try-except sollte um möglichst wenig Code stehen.

Code: Alles auswählen

try:
    s1.recv(1024)
except socket.error:
    print 's1 error'
try: 
    s2.recv(1024)
except socket.error:
    print 's2 error'
Gruss
Antworten