[Python-de] Socket bleibt offfen
Karsten Schulz
python at t800.ping.de
Do Mär 15 06:13:11 UTC 2007
Hallo Hartmut,
Am Mittwoch, 14. März 2007 22:50 schrieb Hartmut Goebel:
> Herausgefunden ahbe ich noch, dass der Verbindungs-Abbau
> unvollständig ist:
>
> 8000 > 43211 FIN, ACK
der Server bestätigt das vorherige TCP-Paket und setzt FIN, um das
Schließen seiner Seite der Verbindung zu verkünden.
> 43211 > 8000 FIN, ACK
der Client bestätigt das vorherige TCP-Paket und setzt FIN, um das
Schließen seiner Seite der Verbindung zu verkünden.
> 8000 > 43211 ACK
Der Server bestätigt das letzte Paket des Clients. Der Socket befindet
sich nun im Status TIME_WAIT, um zu verhindern, dass eine andere
Anwendung diesen Socket (genauer TCP-Port 43211) benutzt und eventuell
verspätet eintreffende TCP-Pakete der vorherigen Nutzung bekommt.
Wenn Du diesen Schutz nicht möchtest, setze SO_REUSEADDR, wie an anderer
Stelle bereits vorgeschlagen wurde.
> Es fehlt also das ACK für das Beenden der Verbindung ducht den
> Server.
Es ist alles in Ordnung. Wenn das gezeigte Verhalten nicht richtig wäre,
würde das bedeuten, dass der TCP/IP-Stack Deines Betriebssystems kaputt
ist, nicht das Python Programm.
Gruß
Karsten
--
Deutsche Übersetzungen von Fachbegriffen aus der Computerwelt:
Modem (Modulator/Demodulator): VerEnt (Verwurschteler/Entwurschteler)