Python IRC机器人在3次ping后断开连接
我写了一个小的Twitch IRC机器人,但它总是断开连接。这个机器人一直在回应服务器的请求,但在回应了三次后,它就收不到来自Twitch的数据了,最后也就从观众列表中消失了。
这里是代码(重要部分):
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])
这是一个函数,它被作为线程执行了两次,只是传入了不同的参数。
问题是,我一开始在twitch.tv的观众列表上能看到这两个机器人,大约持续了5分钟,但在回应了三次请求后,Twitch就不再发送任何信息了。
如果你需要更多代码来了解情况,请告诉我。
1 个回答
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')
这样做会让很多事情变得简单很多。请试试看,如果问题还存在,请留言。