Quelle pourrait être la raison pour une erreur de socket “[Errno 9] Mauvais descripteur de fichier”
J'ai un complexe python (2.7.3) script qui tente d'ouvrir une connexion de socket via
self.socket.close()
# doing something else
self.socket.connect((host, port))
mais tout ce que j'obtiens est le suivant erreur de socket:
error: [Errno 9] Bad file descriptor
La host:port
accepte les connexions que j'ai vérifié cela avec nc host port
manuellement. Alors, quelle pourrait être les raisons possibles, j'obtiens cette erreur pour l'ouverture d'une connexion à ce port, qui fonctionne réellement?
Je ne peux pas et ne vais pas poster le script complet, car il est trop complexe et irrelavent pour cette question. J'aimerais juste savoir toutes les raisons possibles de cette erreur, et comment les vérifier et les corriger.
Lisez la documentation pour
socket.close()
. Vous ne pouvez pas réutiliser dans n'importe quelle opération (y compris connect
) une fois que vous le fermez. Il doit être réinitialisé par un appel à socket.socket
.OriginalL'auteur Alex | 2013-06-20
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de créer un nouveau socket. Peut-être
self.socket = socket.socket()
après la fermeture de la précédente prise et avant la connexion.OriginalL'auteur