一个喜剧简单的python程序上的IRC连接错误
发布时间:2020-12-20 13:44:05 所属栏目:Python 来源:网络整理
导读:我今天开始尝试制作一个涉及IRC日志的相对复杂的程序.无论我做了什么,我都得到了: ['ERROR',':Closting','Link:',*******identifying details**********,'(Connection','timed','out')' 我认为简化一切都可以帮助我从中学习,但即使有这个非常简单的程序,我
我今天开始尝试制作一个涉及IRC日志的相对复杂的程序.无论我做了什么,我都得到了:
['ERROR',':Closting','Link:',*******identifying details**********,'(Connection','timed','out')' 我认为简化一切都可以帮助我从中学习,但即使有这个非常简单的程序,我仍然会收到这个错误: import sys import socket import string HOST="irc.freenode.net" PORT=6667 NICK="nick" IDENT="nick" REALNAME="realname" readbuffer="" s=socket.socket( ) s.connect((HOST,PORT)) s.send("".join(["NICK",NICK,"rn"]).encode()) s.send("".join(["USER %s %s bla :%srn" % (IDENT,HOST,REALNAME)]).encode()) while 1: readbuffer=readbuffer+s.recv(1024).decode() temp=str.split(readbuffer,"n") readbuffer=temp.pop( ) for line in temp: line=str.rstrip(line) line=str.split(line) if(line[0]=="PING"): s.send("".join(["PONG ",line[1],"rn"]).encode()) print (line) 我现在非常确定我正在解决人们在这里发布的虚拟代码(几乎在其他地方.我做错了什么? 解决方法
仔细看看这行代码:
s.send("".join(["NICK","rn"]).encode()) 如果你用print替换s.send,你会发现它发送的字符串是这样的: NICKnick<CR><LF> 没有空间!这使得它成为无效命令,并使注册失败.在某些时候,服务器放弃接收您的有效注册,因此向您发送错误并关闭连接.所以请确保包含空格: s.send("".join(["NICK ","rn"]).encode()) 至少你会发送有效的注册. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |