【发布时间】:2012-06-07 17:46:07
【问题描述】:
我正在尝试制作一个 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
【问题讨论】:
-
IRC 服务器可能对你生气了。您正在从他们的服务器不停地阅读。
-
你可能想试试 irclib。它处理 IRC 的所有框架(包括 ping)。 python-irclib.sourceforge.net 它甚至提供了一个 IRC Bot 示例。
-
@Blender:这不是套接字的工作方式——recv 调用只是客户端,如果没有准备好接收的数据,则程序会停止。