python中的IRC客户端

问题描述:

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

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

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

谢谢

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

如果你不想这样做,并且需要某种程度的抽象来减轻你的开发(和你应该的),那么请参阅Twisted

还有一个Python IRC client库。

+1

+1:用Twisted实现IRC很容易。 – 2010-11-10 18:11:54

+3

我也写了https://irc3.readthedocs.org/与python3/asyncio – gawel 2014-05-10 09:24:56

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

你可以找到一个IRC here

IRC RFC文档是一个重要的参考文献,但我在IRC客户端和服务器之间的通信中找到的最有帮助的第一个介绍非常简单。首先,您需要访问* nix shell(例如运行Linux的Web主机中的ssh)。

在命令行中,使用'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 

聊天引入通道(发送通道1味精):

PRIVMSG #yourtestchannel Message Text Here 

如果您在真正的IRC客户端中连接到同一台服务器并使用不同的昵称,则此功能特别有用。你可以和自己聊天,并且可以和另一个人交谈,并且看到你需要解析的“原始”IRC输出来编写你自己的客户端或机器人。

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

:[email protected]_various_parts PRIVMSG #channel :Hey guys, what's up? 

使用RFC,可以玩弄任何你想要的功能,更重要的是,找出如何,你需要解析事物。

噢,不要忘了PONG偶尔或者在提示PING的时候避免ping超时。

+0

安全通信也很简单吗? – 2014-05-14 11:30:54