143 votes

Adresse Python [Errno 98] déjà utilisée

Dans mon programme de socket Python, j'ai parfois besoin de l'interrompre avec ctrl-c. Lorsque je le fais, la connexion est fermée à l'aide de socket.close (). Cependant, lorsque j'essaie de la rouvrir, je dois attendre ce qui semble être une minute avant de pouvoir me reconnecter. Comment ferme-t-on correctement un socket? Ou est-ce prévu?

154voto

Bartosz Points 2183

Oui, c'est prévu. Ici vous pouvez lire une explication détaillée . Il est possible de remplacer ce comportement en définissant l'option SO_REUSEADDR sur un socket. Par exemple:

 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
 

27voto

dirkk0 Points 451

Si vous utilisez un serveur de socket, vous pouvez faire ceci:

SocketServer.ThreadingTCPServer.allow_reuse_address = True

(via SocketServer.ThreadingTCPServer - Impossible de se connecter à l'adresse après le redémarrage du programme )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X