2013-06-20 5 views
9

el nc host port ile bu doğrulandı olarak"[Errno 9] Kötü dosya tanımlayıcı" Ben</p> <pre><code>self.socket.close() # doing something else self.socket.connect((host, port)) </code></pre> <p>ancak tüm aracılığıyla soket bağlantısı açmaya çalışıyor (2.7.3) komut karmaşık bir piton var

error: [Errno 9] Bad file descriptor 

host:port bağlantıları kabul eder: Ben olsun şu soket hatadır. Öyleyse, gerçekte çalıştığım belirli bağlantı noktasına bağlantı açmak için bu hatayı almamın olası nedenleri neler olabilir?

Bu senaryo için çok karmaşık ve geri dönüşü olmadığı için komut dosyasını yayınlayamıyorum ve göndermeyeceğim. Sadece bu hatanın olası tüm nedenlerini ve bunları nasıl kontrol edip düzelteceğinizi öğrenmek istiyorum.

+4

socket.close() 'belgelerini okuyun. Bir kez kapattığınızda, herhangi bir işlemde ('' '' dahil) yeniden kullanamazsınız. Socket.socket' için bir çağrı ile yeniden başlatılması gerekiyor. – Thomas

cevap

25

Yeni bir soket nesnesi oluşturmanız gerekecektir. Belki bir önceki soketi kapattıktan ve bağlanmadan önce self.socket = socket.socket().

+0

Bongo işte bu! Çok teşekkür ederim. – Alex

İlgili konular