2013-04-11 2 views
16

मेरे कोड यह है:errno 9 हो रही है: अजगर सॉकेट में बुरा फ़ाइल वर्णनकर्ता

while 1: 
    # Determine whether the server is up or down 
    try: 
     s.connect((mcip, port)) 
     s.send(magic) 
     data = s.recv(1024) 
     s.close() 
     print data 
    except Exception, e: 
     print e 
    sleep(60) 

यह पहली बार चलाने पर ठीक काम करता है, लेकिन मेरे errno 9 के बाद हर बार देता है। मैं क्या गलत कर रहा हूं?

Btw,

mcip = "mau5ville.com" 
port = 25565 
magic = "\xFE" 
+2

क्या करें जादू, मिस, और बंदरगाह का मतलब है? कृपया www.pastebin.com – xxmbabanexx

+0

पर पूरा कोड पोस्ट करें –

उत्तर

31

आप एक ही सॉकेट आप बंद कर दिया पर connect कॉल कर रहे हैं। आप ऐसा नहीं कर सकते close के लिए the docs के लिए

के रूप में कहते हैं:

सॉकेट वस्तु पर सभी भावी कार्रवाई विफल रहेगी।

बस लूप में s = socket.socket() (या जो कुछ भी है) को ले जाएं। (या, यदि आप चाहें, तो create_connection का उपयोग दो चरणों में करने के बजाय करें, जिससे यह गलत हो जाता है, साथ ही साथ आपको आईपीवी 4 बनाम आईपीवी 6, आदि पर अनुमान लगाने की आवश्यकता नहीं है)

+0

Awesomeee के लिए उन्हें जोड़ा गया। धन्यवाद! –

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