标签:
知道了原理以后,就可以着手来写了。
服务器暂时用现有的程序,只需要自己写客户端即可。打算用python来写。
需要涉及的技术:
(1)python的socket模块
(2)IRC命令(用send发送)
刚开始就遇到了问题:可以连接到服务器上,但是无法加入频道中。不就应该是send(‘join #ircchannel \r\n‘)吗?
后来发现,这句以后服务器会发来ping命令,你必须回答一个pong,才可以连接到频道中。具体做法如下:
import socket nickname=‘lily‘ network = ‘172.29.153.23‘ port = 6667 channel=‘#abs‘ irc = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) irc.connect((network,port)) irc.send(‘nick %s\r\n ‘%nickname) irc.send ( ‘USER 1 %s %s : %s \r\n‘% (network,network,nickname)) while True: data = irc.recv ( 4096 ) print data if data.find ( ‘PING‘ ) != -1: irc.send ( ‘PONG ‘ + data.split() [ 1 ] + ‘\r\n‘ ) irc.send ( ‘JOIN %s\r\n‘%channel) irc.send(‘privmsg %s : canyouhearme\r\n‘%channel)
只不过ping的有点慢,但还是可以通信的。
不过,这个代码也太丑了,简单粗暴,就不能美化一下吗?
标签:
原文地址:http://www.cnblogs.com/myblog-lyc/p/4180522.html