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/