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