我正在为IRC客户端编写python代码.
我想了解IRC客户端和服务器如何相互通信.
谁能给我很好的教程或IRC通信架构来深入理解它?
谢谢
IRC RFC文档是一个重要的参考,但我在IRC客户端和服务器之间的通信中发现的最有用的第一个介绍非常简单.
首先,您需要访问*nix shell(例如,ssh进入运行Linux的Web主机).
在命令行中,使用程序"nc"打开与IRC服务器的直接连接.然后,您可以直接键入RFC命令,并查看响应.尝试输入
$ nc wright.freenode.net 6667 PASS whateveryoulike NICK yournick USER username 0 * :Real Name
在此期间服务器有输出,但现在您已登录并"注册"了您的用户.注意:您的昵称未注册(ala NickServ),我指的是注册用户,如RFC 2812 IRC客户端协议第3.1节所述.
您现在可以加入频道:
JOIN #yourtestchannel
看看频道中的人:
WHO #yourtestchannel
给自己发一个消息:
PRIVMSG yournick Message Text Here
聊天频道(发送频道为msg):
PRIVMSG #yourtestchannel Message Text Here
如果您在真实的IRC客户端中连接到具有不同缺口的相同服务器和通道,这将特别有用.您可以与自己聊天并向另一个发送一个昵称,并查看您必须解析的"原始"IRC输出以编写您自己的客户端或机器人.
例如,在频道中聊天的人看起来像这样:
:SomeDude28!SomeDude28@hoststring-with_various_parts PRIVMSG #channel :Hey guys, what's up?
使用RFC,您可以使用您想要的任何功能,更重要的是,弄清楚您需要如何解析事物.
哦,不要偶尔忘记PONG,或者在PING提示时,以避免ping超时.
如果你想重新发明轮子,那么你必须实现RFC并从头开始做所有事情.
如果您不想这样做并且需要某种程度的抽象来简化您的开发(以及您应该这样做),那么请参阅Twisted.
还有一个Python IRC客户端库.
对于大多数协议,一个好的开始方法是查找名为RFC的文档.有许多协议,它定义 - 深入 - 它应该如何表现.
你可以在这里找到IRC的那个.