2013-04-08 118 views
5

我正在Python中編寫一個IRC bot。Python,重新創建套接字並自動重新連接

來源:http://pastebin.com/gBrzMFmA(抱歉引擎收錄,我不知道如何efficently /正確使用代碼在這裏tagthing上)

當「IRC」插座死了,反正是有,我可以去檢測是否它的死亡,然後自動重新連接?

我剛剛googling了一段時間,發現我將不得不創建一個新的套接字。我試圖和添加的東西就像在真實的同時捕捉socket.error:但似乎只是掛,不正確連接..

感謝您的幫助提前

+0

你有什麼代碼? – User 2013-04-08 18:02:11

回答

5

在這裏找到答案:Python : Check if IRC connection is lost (PING PONG?)

雖然問題所有者的接受的答案的作品,我喜歡約翰·萊德貝特的答案在這裏,索利因爲其簡單: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 2016-12-18 14:26:21