2013-06-20 5 views
9

मैं एक जटिल अजगर (2.7.3) स्क्रिप्ट जो के माध्यम सेक्या एक सॉकेट त्रुटि के लिए कारण हो सकता है "[errno 9] बुरा फ़ाइल वर्णनकर्ता"

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

लेकिन सभी एक गर्तिका कनेक्शन खोलने की कोशिश कर रहा है

error: [Errno 9] Bad file descriptor 

host:port के रूप में मैं मैन्युअल nc host port के साथ इस को सत्यापित किया है कनेक्शन स्वीकार करता है: मैं निम्नलिखित सॉकेट त्रुटि है। तो दिए गए बंदरगाह से कनेक्शन खोलने के लिए मुझे यह त्रुटि क्यों मिल सकती है, जो वास्तव में काम करता है?

मैं पूरी स्क्रिप्ट पोस्ट नहीं कर सकता और नहीं करूँगा क्योंकि यह इस प्रश्न के लिए बहुत जटिल और अप्रिय है। मैं सिर्फ इस त्रुटि के सभी संभावित कारणों को जानना चाहता हूं, और उन्हें कैसे जांचूं और उन्हें ठीक करूँ।

+4

'socket.close()' के लिए दस्तावेज़ पढ़ें। एक बार जब आप इसे बंद कर लेंगे तो आप इसे किसी भी ऑपरेशन ('कनेक्ट' सहित) में पुन: उपयोग नहीं कर सकते। इसे 'socket.socket' पर कॉल के साथ पुन: प्रारंभ करने की आवश्यकता है। – Thomas

उत्तर

25

आपको एक नया सॉकेट ऑब्जेक्ट बनाना होगा। पिछली सॉकेट बंद करने और कनेक्ट करने से पहले शायद self.socket = socket.socket()

+0

बोंगो यह है! आपका बहुत बहुत धन्यवाद। – Alex

संबंधित मुद्दे