2010-11-10 4 views
5

Я пишу код python для клиента IRC.IRC-клиент в python

Я хочу понять, как клиент и сервер IRC общаются друг с другом.

Может ли кто-нибудь дать мне хорошую учебную или коммуникационную архитектуру IRC, чтобы понять ее по глубине?

Благодаря

ответ

9

Если вы хотите изобрести колесо, вам необходимо реализовать RFC и сделать все с нуля.

Если вы не хотите этого делать и потребуется некоторый уровень абстракции, чтобы облегчить вашу разработку (и что вам нужно), см. Twisted.

Существует также библиотека Python IRC client.

+1

+1: Осуществление IRC с помощью Twisted легко сделать. –

+3

Я также написал https://irc3.readthedocs.org/ с python3/asyncio – gawel

5

Для большинства протоколов хороший способ начать искать документ под названием RFC. Есть один для многих протоколов, и он определяет - в глубине - как он должен себя вести.

Вы можете найти его для IRC here.

10

Документация IRC RFC является важной ссылкой, но самое полезное первое введение, которое я нашел на связи между клиентом и сервером IRC, было очень простым.

Во-первых, вам нужен доступ к оболочке * nix (например, ssh в ваш веб-хост под управлением Linux).

В командной строке откройте прямое подключение к IRC-серверу с помощью программы «nc». Затем вы можете вводить команды RFC напрямую и видеть ответ. Попробуйте ввести

$ nc wright.freenode.net 6667 
PASS whateveryoulike 
NICK yournick 
USER username 0 * :Real Name 

Существует выход с сервера посреди этого, но теперь вы вошли в и «зарегистрированный» вашего пользователя. Примечание: ваш ник не зарегистрирован (ala NickServ), я имею в виду регистрацию пользователя, как описано в разделе 3.1 раздела RFC 2812 IRC Client Protocol.

Теперь вы можете присоединиться к каналу:

JOIN #yourtestchannel 

Смотрите, кто в канале:

WHO #yourtestchannel 

Отправить себе Сообщ:

PRIVMSG yournick Message Text Here 

чат в канал (скопировав channel a msg):

PRIVMSG #yourtestchannel Message Text Here 

Это особенно полезно, если вы подключены к одному и тому же серверу и каналу с другим ником в реальном IRC-клиенте. Вы можете пообщаться с самим собой и msg один ник к другому, и посмотреть «сырой» вывод IRC, который вам придется анализировать, чтобы написать собственный клиент или бот.

Например, кто-то в чате в канале выглядит примерно так:

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

Использование RFC, вы можете играть с любой функциональностью вы хотите, и, что более важно, понять, как вам нужно разбирать вещи.

О, и не забывайте, что иногда PONG или когда запрашивается с помощью PING, чтобы избежать таймаута пинга.

+0

Безопасная ли связь тоже проста? –

Смежные вопросы