【发布时间】:2012-05-18 03:14:48
【问题描述】:
我曾经有一个可以工作的 IRC 机器人,我亲切地称之为“shakybot”,因为它一开始非常不稳定。
现在,我正在重新编码。但是,每当我运行它时,都会遇到问题。这是从 IRC 通道检测到的输出:
NOTICE AUTH :*** Please wait while we scan your connection for open proxies...
:Tigh.GeekShed.net NOTICE AUTH :*** Looking up your hostname...
:Tigh.GeekShed.net NOTICE AUTH :*** Found your hostname (cached)
:Tigh.GeekShed.net NOTICE AUTH :*** Checking ident...
然后它就进入了主循环。它从不连接或任何东西,它只是打印这个。我正在使用旧版本中的相同代码。
irc=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
irc.connect((network, port))
a=irc.recv (4096) #Setting up the Buffer
print a
irc.send('NICK ' + nick + '\r\n')
irc.send('USER shakybot shakybot bla :shakybot\r\n')
irc.send('JOIN :' + chan + '\r\n')
irc.send('PRIVMSG ' + chan + ' :Hello.\r\n')
我怎样才能让它连接起来?
编辑:在比较了用 Mibbit 和这个程序连接到 IRC 的调试消息后,我应该得到:
Tigh.GeekShed.net *** Looking up your hostname...
Tigh.GeekShed.net *** Checking ident...
Tigh.GeekShed.net *** Found your hostname
Tigh.GeekShed.net *** Received identd response
【问题讨论】:
-
你至少应该使用twisted或asyncore。
-
为什么要让事情变得比应有的复杂?如果我可以单独使用套接字,为什么要使用 Twisted?
-
你将重新发明一个你不必重新发明的轮子,作为一个正方形。