Aller au contenu
uencoder

SO_REUSEADDR

SO_REUSEADDR permet à un socket de se lier à une adresse bloquée en TIME_WAIT, laissant un serveur redémarré récupérer son port immédiatement.

Objectif

Évite « Address already in use » au redémarrage du serveur en autorisant la re-liaison immédiate d'un port tout juste fermé.

Mécanisme

Une fois activé, bind() accepte les adresses locales dont les connexions sont encore en TIME_WAIT. Le TIME_WAIT dure 2MSL (environ 60-120 s), qu'il faudrait sinon attendre. Attention à la distinction avec SO_REUSEPORT.

Cas d’usage

  • Redémarrages rapides de serveurs
  • Réutilisation de ports
  • Développement et débogage

Outils associés

References