python - IRC 机器人无法加入 channel

标签 python irc

import socket

irc = 'irc.hack3r.com'
port = 6667
channel = '#chat'
sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sck.connect((irc, port))
sck.send('NICK supaBOT\r\n')
sck.send('USER supaBOT supaBOT supaBOT :supaBOT Script\r\n')
sck.send('JOIN #chat' + '\r\n')
data = ''
while True:
     data = sck.recv(4096)
     if data.find('PING') != -1:
        sck.send('PONG ' + data.split() [1] + '\r\n')
        print data

print sck.recv(4096)

当我连接到服务器时,我无法加入 channel ,我得到这个错误:

"451 JOIN :You have not registered"

最佳答案

迈克格雷厄姆错了。问题在于您过早发送 JOIN 命令。服务器需要一段时间才能注册您的 NICK 和 USER 命令,因此会出现错误“Nick not registered”。 看到这个回复:Python IRC bot won't join .

我还想鼓励您通过使用裸套接字制作机器人来继续学习和发现 IRC 协议(protocol)。谁在乎你的代码不完全符合 RFC 1459。几乎没有任何服务器、客户端或机器人 100% 符合标准。但如果它有效,它就有效!

而且与 Daenyth 所说的不同,使用裸套接字 IRC 机器人获得一些好的结果并不难。只需通读一下 RFC 并进行实验!

关于python - IRC 机器人无法加入 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299210/

相关文章:

python - MySql read_sql python 查询,带变量@

python - 我可以更改给定 celery 任务的 ETA 参数吗?

Python IRC-Bot Quakenet 无识别响应

multithreading - (Delphi 2009) idIRC、MDI 和挂起问题

node.js - 你如何使用 node-irc 登录?

java - IRCLib Java 创建的 IRC Bot 问题

perl - 构造函数错误 : couldn't execute "git": no such file or directory

python - 科学 : fourier transform of a few selected frequencies

python - 为目录中的每个文件运行 pytest

Python 3 绑定(bind)方法订阅