Python IRC Bot在240秒后超时

Python IRC Bot在240秒后超时,python,sockets,irc,bots,Python,Sockets,Irc,Bots,我试图制作一个IRC机器人,但它在240秒后一直超时。我怎样才能解决这个问题 import socket host = 'test' port = 6667 channel = '#test' nick = "test" s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, port)) s.send('NICK ' + str(nick) + ' \n\r') s.send('USER v v v :

我试图制作一个IRC机器人,但它在240秒后一直超时。我怎样才能解决这个问题

import socket 
host = 'test'
port = 6667
channel = '#test'
nick = "test"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.send('NICK ' + str(nick) +  ' \n\r') 
s.send('USER v v v :v Script' + '\r\n')
s.send('JOIN '+channel+' \n\r')

while True:
    command = s.recv(4096)
    print command

您可以尝试使用irclib,但最可能的情况是,您没有回复服务器的PING消息

无论何时收到的消息以“PING”开头,您都必须用包含单词PONG和您的程序名(以及可选的主机)的“PONG”消息进行回复,并在“PONG”后面留下一个空格


检查PING和PONG消息的完整IRC规范,并查看您在实验过程中可能缺少的其他内容:

您可以尝试使用irclib-但最有可能的情况是,您没有回复服务器的PING消息

无论何时收到的消息以“PING”开头,您都必须用包含单词PONG和您的程序名(以及可选的主机)的“PONG”消息进行回复,并在“PONG”后面留下一个空格


检查PING和PONG消息的完整IRC规范,并查看您在实验中可能缺少的其他内容:

您没有回复来自服务器的PING请求

当您长时间处于空闲状态时,服务器会认为连接已断开,并发送一个ping请求,您需要使用pong(以及ping之后服务器发送给您的任何内容)进行回复。因此,如果服务器向您发送此消息,则应为您的回复:

PING :HELLO_WORLD
PONG :HELLO_WORLD

否则,服务器将确认链路已断开并终止连接

您没有回复来自服务器的ping请求

当您长时间处于空闲状态时,服务器会认为连接已断开,并发送一个ping请求,您需要使用pong(以及ping之后服务器发送给您的任何内容)进行回复。因此,如果服务器向您发送此消息,则应为您的回复:

PING :HELLO_WORLD
PONG :HELLO_WORLD

否则,服务器将确认链路已断开并终止连接

IRC服务器可能会对你生气。您正在不间断地从他们的服务器读取。您可能想尝试irclib。它处理IRC的所有框架(包括ping)。它甚至提供了一个IRC Bot示例。@Blender:套接字不是这样工作的-recv调用仅在客户端进行,如果尚未收到准备使用的数据,则会暂停程序。IRC服务器可能正在对您生气。您正在不间断地从他们的服务器读取。您可能想尝试irclib。它处理IRC的所有框架(包括ping)。它甚至提供了一个IRC Bot示例。@Blender:套接字不是这样工作的-recv调用仅在客户端进行,如果尚未收到准备使用的数据,则会暂停程序。