[gelöst] TCP-Server, Verbindungsende ermitteln

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
Gnushi
User
Beiträge: 77
Registriert: Dienstag 12. Dezember 2006, 09:49

Hallo zusammen!

Ich bastel mit socket und select einen TCP-Server. Nun kann es immer mal vorkommen, dass ein Client die Verbindung verliert, z. B. wegen der DSL-Zwangstrennung oder so. Dieser Client soll sich wieder verbinden können.

Wie kann ich erkennen, ob ein Client die Verbindung getrennt hat?

Der dritte Parameter von select.select wird in dem Fall nicht gesetzt. Stattdessen habe ich auf einmal Daten von dem (nicht mehr verbundenden) Client anliegen, die ich aber nicht mit

Code: Alles auswählen

data = sock.recv(4096) 
ermitteln kann.

Liebe Grüße

GnuShi
Zuletzt geändert von Gnushi am Mittwoch 17. September 2008, 09:26, insgesamt 1-mal geändert.
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Wenn ``sock.recv()`` einen leeren String zurückgibt, wurde die Verbindung geschlossen.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Gnushi
User
Beiträge: 77
Registriert: Dienstag 12. Dezember 2006, 09:49

Trundle hat geschrieben:Wenn ``sock.recv()`` einen leeren String zurückgibt, wurde die Verbindung geschlossen.
Danke!

GnuShi
Antworten