Zum Inhalt springen
uencoder

SO_REUSEADDR

SO_REUSEADDR erlaubt einem Socket, sich an eine im TIME_WAIT steckende Adresse zu binden, sodass ein neu gestarteter Server seinen Port sofort zurückbekommt.

Zweck

Vermeidet „Address already in use“ beim Server-Neustart, indem die sofortige Neubindung eines gerade geschlossenen Ports erlaubt wird.

Mechanismus

Einmal gesetzt, akzeptiert bind() lokale Adressen, deren Verbindungen noch im TIME_WAIT sind. TIME_WAIT dauert 2MSL (etwa 60-120 s), die man sonst abwarten müsste. Beachte den Unterschied zu SO_REUSEPORT.

Anwendungsfälle

  • Schnelle Server-Neustarts
  • Portwiederverwendung
  • Entwicklung und Debugging

Verwandte Tools

References