我曾经有一个正在工作的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...
然后进入主循环。它从不连接或任何东西,它只是打印这个。我使用的是旧版本中的相同代码。在
^{pr2}$我怎样才能把它连接起来?在
编辑:用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
我发现以下是连接到IRC服务器的解决方案。在
当
irc.recv(4096)
返回时,这意味着您已从远程服务器接收到至少一个字节。远程服务器可能尚未准备好发送NICK
命令。你应该等到从服务器收到一条合适的消息,说它准备好接收你的登录信息(抱歉,我现在不记得那条消息是什么)。在Greg
所说的是正确的。请根据RFC1459
检查PING
消息,查看此代码(http://code.activestate.com/recipes/299411-connect-to-an-irc-server-and-store-messages-into-a/)。在您还可以查看一些python IRC库。
http://pypi.python.org/pypi/lalita/0.1.1
http://pypi.python.org/pypi/irc/1.1
别忘了在pypi中搜索(http://pypi.python.org/pypi?%3Aaction=search&term=irc&submit=search)
相关问题 更多 >
编程相关推荐