2010-10-04 14 views
5

Angenommen, Sie haben einen Socket, der auf einem TCP-Port abhört, und einige Clients sind verbunden. Wenn man sock_close (fd) in C ausgibt und versucht, erneut an denselben Port zu binden, schlägt die Bindung fehl. Einige TIME_WAIT Zustand befindet sich auf der „netstat -plutnoa“ gesehen wie:Schließen eines abhörenden TCP-Sockets in C

tcp  0  0 127.0.0.1:4567   127.0.0.1:32977   TIME_WAIT -    timewait (17.12/0/0) 

So, wie man richtig den Server-Socket trennen kann und sofort auf dem gleichen Port verbinden?

+1

Ich habe SO_REUSEADDR gefunden, überprüfe es jetzt ... – whoi

Antwort

8

Sie möchten die Option SO_REUSEADDR auf dem Socket verwenden. Die relevante Manpage ist socket(7). Hier ist ein example seiner Verwendung. This question erklärt, was passiert.

Verwandte Themen