我正在编写一个 IRC 聊天客户端,因为我的 ISP 不允许正常的 IRC 程序。所以我正在使用 SSL 制作一个。无论如何,我运行了我的 IRC 聊天客户端,我可以很好地听我只是无法识别自己。我总是在聊天开始后收到这个。
*没有 Ident 响应
我看到的所有内容都让我在端口 113 上进行侦听并做出响应,因此我编写了一个 TCP 套接字来侦听并打印发送的内容,以为我遵循了其他建议。但是,我从来没有得到任何响应,我通过远程登录到 113 上的服务器套接字,我能够很好地连接和通信。
我认为 IRC 不会在 113 上发回其验证,或者我发送的信息有问题。自己如何识别或至少响应回复以识别自己和聊天
这是我的客户:
import socket, string, re, time , ssl, urllib
network = 'irc.freenode.net'
nick = 'testr'
chan = 'ubuntu'
port = 7000 #6697
socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
def main(network, nick, port):
socket.connect((network,port))
irc = ssl.wrap_socket(socket)
irc.send('NICK %s\r\n' % nick)
print irc.recv(4096)
irc.send('USER %s %s %s :TEST\r\n' % (nick,nick,nick))
print irc.recv(4096)
irc.send("JOIN #%s\r\n" % chan)
print irc.recv(4096)
print "STARTING CHAT!!"
while True:
data = irc.recv(4096)
print data
irc.send("TEST")
if data.find('PING') != -1:
print "PING RECEIVED!"
print "SENDING PONG!"
irc.send('PONG '+data.split()[1]+'\r\n')
if __name__=='__main__':
main(network, nick, port)
还有我的 SERVER 用于测试响应:
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
host = 'localhost'
port = 113
s.bind((host, port))
s.listen(5)
while True:
c, addr = s.accept()
data = c.recv(1024)
print data
#c.close() # Close the connection