2013-04-08 6 views
5

पुन: कनेक्ट करें मैं पाइथन में एक आईआरसी बॉट लिख रहा हूं।पायथन, सॉकेट को फिर से बनाएं और स्वचालित रूप से

स्रोत: http://pastebin.com/gBrzMFmA (pastebin के लिए खेद है, मैं नहीं जानता कि कैसे कुशलतापूर्वक/सही ढंग से कोड यहाँ पर tagthing उपयोग करने के लिए) जब "irc" सॉकेट मर जाता है

, वहाँ वैसे भी है मैं अगर पता लगाने के बारे में जा सकते हैं इसके मृत और फिर स्वचालित रूप से फिर से कनेक्ट हो रहा है?

मैं थोड़ी देर के लिए googling था और पाया कि मुझे एक नई सॉकेट बनाना होगा। पहले से, लेकिन यह सिर्फ लटका और सही ढंग से पुन: कनेक्ट नहीं लगता है ..

मदद के लिए धन्यवाद

+0

आपके पास कौन सा कोड है? – User

उत्तर

5

यहाँ उत्तर दिया: मैं कोशिश कर रहा था और जब तक यह सच में socket.error पकड़ने की तरह सामान जोड़ा Python : Check if IRC connection is lost (PING PONG?)

जबकि सवाल मालिक स्वीकार किए जाते हैं जवाब काम करता है, मैं अपनी सादगी के लिए यहाँ जॉन Ledbetter के जवाब पसंद करते हैं, को केवल: https://stackoverflow.com/a/6853352/625919

तो, मेरे लिए, मैं

def connect(): 
    global irc 
    irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    irc.connect((server, port)) 
    #and nick, pass, and join stuffs 
connect() 
while True: 
    data = irc.recv(4096) 
    if len(data) == 0: 
     print "Disconnected!" 
     connect() 
की तर्ज पर कुछ है
+0

क्या यह न केवल काम करेगा यदि डेटा की निरंतर स्ट्रीम प्राप्त हो रही है? ऐसा लगता है कि यह सर्वर से खाली पैकेट प्राप्त करने के पल को फिर से कनेक्ट करेगा? – user1561108

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