python中的IRC客户端

时间:2010-11-10 17:54:11

标签: python irc

我正在为IRC客户端编写python代码。

我想了解IRC客户端和服务器如何相互通信。

任何人都可以给我很好的教程或IRC通信架构来深入理解吗?

由于

3 个答案:

答案 0 :(得分:11)

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 Client Protocol第3.1节所述。

您现在可以加入频道:

JOIN #yourtestchannel

查看频道中的对象:

WHO #yourtestchannel

给自己发一个消息:

PRIVMSG yournick Message Text Here

聊天频道(发送频道为msg):

PRIVMSG #yourtestchannel Message Text Here

如果您在真实的IRC客户端中连接到具有不同缺口的同一服务器和通道,这将特别有用。你可以和自己聊天并向另一个人发一个昵称,并看到" raw" IRC输出,您必须解析以编写自己的客户端或机器人。

例如,在频道中聊天的人看起来像这样:

:SomeDude28!SomeDude28@hoststring-with_various_parts PRIVMSG #channel :Hey guys, what's up?

使用RFC,您可以使用您想要的任何功能,更重要的是,弄清楚您将如何解析事物。

哦,不要偶尔忘记PONG,或者在PING提示时忘记,以避免ping超时。

答案 1 :(得分:9)

如果你想重新发明轮子,那么你必须实现RFC并从头开始做所有事情。

如果您不想这样做并且需要某种程度的抽象来简化您的开发(以及您应该这样做),那么请参阅Twisted

还有一个Python IRC client库。

答案 2 :(得分:5)

对于大多数协议,一个好的开始方法是查找名为RFC的文档。有许多协议,它定义 - 深入 - 它应该如何表现。

您可以找到IRC here的那个。