Schließen einer listening TCP socket in C
Angenommen, Sie haben einem socket lauscht auf einem TCP-port, und einige clients verbunden sind. Wenn man Probleme sock_close(fd) in C und zu binden versucht wieder auf den gleichen port, die Bindung fehlschlägt. Einige TIME_WAIT-Zustand ist, sehen Sie auf den "netstat -plutnoa" wie:
tcp 0 0 127.0.0.1:4567 127.0.0.1:32977 TIME_WAIT - timewait (17.12/0/0)
So, wie man richtig trennen Sie den server-socket und wieder auf den gleichen port sofort?
- Ich fand SO_REUSEADDR, überprüfen es jetzt...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wollen Sie das
SO_REUSEADDR
option auf den sockel. Die entsprechenden manpage istsocket(7)
. Hier ist ein Beispiel von seiner Verwendung. Diese Frage erklärt, was passiert.