加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

一个喜剧简单的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())

至少你会发送有效的注册.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读