2014-09-12 29 views
1

所以我編寫了一個小抽搐irc bot,但是它斷開連接,bot只是停留在ping pings之後,3個pongs之後我的bot從抽搐中收到0個數據並從查看器列表中消失。3個ping之後Python IRC bot斷開連接

這裏是代碼(重要的部分):

readbuffer = "" 
while (1): 
     readbuffer=readbuffer+s.recv(4000) 
     temp=string.split(readbuffer, "\n") 
     readbuffer=temp.pop() 
     for line in temp: 
      print line 
      elif(line[0]=="PING"): 
       s.sendall("PONG %s\r\n" % line[1]) 

其部署爲一個線程函數2次使用不同的參數..

的事情是我在看2個機器人twitch.tv查看器列表首先約5分鐘,然後在3次ping完全抽搐後不再ping或發送任何東西。

如果您需要更多信息,請向我諮詢更多的代碼。

+0

你確定這是真的發送任何迴應/不會'行[0]'是一個單一的字符? – FatalError 2014-09-12 22:23:43

+0

我會試着用if('PING'in line): – Somebody 2014-09-12 22:26:32

+0

仍然是一樣的,從抽搐的一面可能會出現問題嗎? – Somebody 2014-09-12 22:37:59

回答

0

也許無關:

解讀套接字文件:https://docs.python.org/2/library/socket.html#socket.socket.makefile

f = s.makefile() 
for line in f: 
    print 'Read:', line 
    command, arguments = line.rstrip().split(' ', 2) 
    if command == 'PING': 
     f.write('PONG ' + arguments + '\r\n') 

這使得這麼多的東西,所以要容易得多。如果問題仍然存在,請嘗試並發表評論。

+0

現在嘗試這將需要一些時間 – Somebody 2014-09-12 22:44:01

+0

解決了這個問題,並解決了更大的問題..我得到一個錯誤,連接被主機上的軟件強行關閉。並且連接被遠程主機中止,錯誤分別爲10053和10054。可能是一個Windows問題 – Somebody 2014-09-12 22:51:01

+0

對不起,我不知道任何關於Windows套接字。我專門在Linux和* BSD上編程。 – kay 2014-09-12 23:01:49