2013-06-20 10 views
9

Ho un pitone complesso (2.7.3) script che sta cercando di aprire una connessione socket tramiteQuale potrebbe essere la ragione di un errore di socket "[Errno 9] descrittore di file Bad"

self.socket.close() 
# doing something else 
self.socket.connect((host, port)) 

ma tutti ottengo è il seguente errore presa:

error: [Errno 9] Bad file descriptor 

il host:port accetta connessioni come ho verificato questo con nc host port manualmente. Quindi quali potrebbero essere le possibili ragioni per cui ottengo questo errore per l'apertura di una connessione alla porta specificata, che funziona effettivamente?

Non riesco a pubblicare la sceneggiatura completa perché è troppo complessa e irrelante per questa domanda. Vorrei solo sapere tutti i possibili motivi per questo errore e come controllarli e correggerli.

+4

Leggere la documentazione per 'socket.close()'. Non puoi riutilizzarlo in nessuna operazione (incluso 'connect') una volta chiuso. Deve essere reinizializzato con una chiamata a 'socket.socket'. – Thomas

risposta

25

Sarà necessario creare un nuovo oggetto socket. Forse self.socket = socket.socket() dopo aver chiuso il socket precedente e prima di connettersi.

+0

Bongo è così! Grazie mille. – Alex

Problemi correlati