|
Здравствуйте, гость ( Вход | Регистрация )
|
![]() ![]()
Сообщение
#61
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Protocol NMDC Структурированное описание протокола NeoModus Direct Connect (NMDC), под управлением которого на сегодняшний день работает подавляющее большинство хабов. Хотя уже внедряется новый протокол ADC, однако, как говориться, всему своё время. По мере написания, на каждую команду будет появляться ссылка на пост, описывающий эту команду. Делаю тему закрытой, дабы структурировано описать команды. О структуре команд Все команды протокола начинаются с символа $. Исключение составляет команда сообщения чата, которая должна иметь следующую структуру: Код <Ник> Сообщение| При этом, данный синтаксис команды чата обязателен в направлении клиент -> хаб, в то время, как хаб может отсылать клиенту любые сообщения, не начинающиеся с символа $, и клиент должен принимать такие сообщения, однако обработка таких сообщение не регламентирована протоколом (клиент может отображать такие сообщения как в чате, так и в статусной строке, или же вовсе игнорировать такие сообщения).Символы-разделители протокола: $, | и пробел. Протокол не имеет экранирующих символов, поэтому для отсылки символов $ и | в параметрах команд нужно использовать их коды: $ и | Строка сообщения разделяется на команды по средствам символа |. Пример трёх команд, отосланных одной строкой: Код $Cmd1 параметр|$Cmd2|$Cmd3 параметр1 параметр2$параметр3| Взаимодействие хаб-клиент $BadPass $Close $ConnectToMe $ForceMove $GetINFO $GetNickList $GetPass $Hello $HubIsFull $HubName $HubTopic $Key $Kick $Lock $LogedIn $MyINFO $MyPass $MultiConnectToMe $MultiSearch $NickList $OpForceMove $OpList $Quit $RevConnectToMe $Search $SR $Supports $UserCommand $UserIP $Version $ValidateNick $ValidateDenide Взаимодействие клиент-клиент $Cancel $Canceled $Direction $Error $Failed $FileLength $Get $GetListLen $Key $Lock $MaxedOut $MyNick $Ping $Send $To Взаимодействие хаб-хаб $FeaturedNetworks $ConnectToMe $Search $SR $Up $UpToo Взаимодействие хаб-хаблист $Key $Lock $Supports Взаимодействие пингер-хаб $BotINFO $HubINFO $Key $Lock $Supports Команды характеристик $ADCGET / $ADCSND $BotList $Capabilities $FeaturedNetworks $GetZBlock $MCTo $Sending $UGetBlock $UGetZBlock $Z $ZOn Разное TTH Lock2Key Известные характеристики Хаб-Клиент: BotList ClientID Feed HubTopic IN MCTo NoGetINFO NoHello OpPlus QuickList TTHSearch UserCommand UserIP2 ZLine ZPipe0 Клиент-Клиент: ADCGet BZList CHUNK ClientID GetCID GetTestZBlock GetZBlock MiniSlots TTHL TTHF XmlBZList ZLIG Общая (обязательная) последовательность входа на хаб. "Рукопожатие" между клиентом и хабом. Общая (обязательная) последовательность входа на хаб Хаб: Код $Lock [Код] Pk=[PrimaryKey]| Клиент: Код $Key [Рассчитанный_ключ]|$ValidateNick [Ник]| Хаб: Код $HubName [Имя_хаба]|$Hello [Ник]| Клиент: Код $Version [Версия]|$GetNickList|$MyINFO [Строка]| Хаб: Код Отсылает список пользователей. Примечания:
Вход на пальцах выглядит так: Клиент коннектится, сервер отвечает командой $Lock, что мол я такой-то сервер, на что клиент отвечает: ок раз ты такой-то сервер - вот тебе ключ ($Key) и проверь мой ник ($ValidateNick), сервер проверяет ник и отправляет клиенту приглашение на вход под этим ником ($Hello), на что клиент отправляет на сервер внутреннюю версию ($Version), запрашивает список пользователей ($GetNickList) и отправляет информацию о себе ($MyINFO), а сервер отсылает ему список пользователей хаба. Последовательность входа на хаб, который поддерживает характеристику QuickList. Входа на хаб при поддержке характеристики QuickList (быстрый вход) Хаб: Код $Lock EXTENDEDPROTOCOL[Код] Pk=[PrimaryKey]| Клиент: Код $Supports QuickList|$Key [Рассчитанный_ключ]| Хаб: Код $Supports QuickList| Клиент: Код $MyINFO [Строка]|$GetNickList| Хаб: Код Отсылает список пользователей. См. подробности в характеристике QuickList Последовательность действий хаба при регистрации в хаб-листе Последовательность действий хаба при регистрации в хаб-листе Хаб коннектится к хаб-листу. Хаб-лист: Код $Lock [Код] Pk=[PrimaryKey]| Хаб: Код $Key [Рассчитанный_ключ]|[Имя_хаба]|[Хост_хаба(:порт)]|[Описание_хаба]|[Число_юзеров]|[Текущая_шара]| Тут хаб выступает в роли клиента. Он коннектится к прописанным в настройках хаб-листам и передаёт им текущую информацию о себе. Коннект к хаб листу должен производится не чаще чем раз в 15 минут, в противном случае, хаб может быть забанен хаб-листом)). Последовательность входа на хаб PtokaX (последовательные команды могут отсылаться одной строкой, разделённой символом | ) Последовательность входа на хаб PtokaX Хаб -> Клиент: ---> $Lock EXTENDEDPROTOCOL[некий_ключ_хаба] Pk=PtokaX Примечание: Команда $LogedIn отсылается только в случае если у вас есть ключ (операторские права). Внимание! Последовательность входа указана для одного потока. Для разных потоков она может быть произвольной, поэтому никогда не используйте глобальные таблицы пользователей, дабы сохранить принцип многопоточности. Последовательность команд при получении списка пользователей (GetNickList) на хабе PtokaX Последовательность команд при получении списка пользователей (GetNickList) на хабе PtokaX Клиент -> Хаб: ---> $GetNickList| Последовательность входа на хаб HeX (последовательные команды могут отсылаться одной строкой, разделённой символом | ) Последовательность входа на хаб HeX Хаб -> Клиент: ---> $Lock EXTENDEDPROTOCOL[некий_ключ_хаба] Pk=versiunea5.03 Примечание: Данный хаб различает вход и переподключение к хабу! Это достигается с помощью задержки в отправлении команды $Quit. Материал из этой темы перенесён в вики: Сообщение отредактировал Setuper - 18.1.2012, 21:48 |
|
|
![]() |
![]()
Сообщение
#62
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
BotList
Описание: Характеристика хаба/клиента. Данная характеристика указывает на поддержку команды $BotList. Для полного понимания, данная характеристика должна присутствовать в команде $Supports как хаба, так и клиента. Спасибо сказали: |
|
|
![]()
Сообщение
#63
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
ClientID
Описание: Характеристика клиента. Данная характеристика указывает на поддержку команды $ClientID. Характеристику поддерживают следующие клиенты: BlackDC, iDC++, dDC++, Zion++ Спасибо сказали: |
|
|
![]()
Сообщение
#64
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Feed
Описание: Характеристика хаба. Данная характеристика позволяет использовать дополнительные протокольные команды уведомления. Характеристика позволяет отслеживать все действия отдельных или всех пользователей, логировать эти действия, а также оповещать операторов хаба о совершённых действиях через отдельно созданную чат-комнату. На данный момент характеристику Feed поддерживает YnHub. Спасибо сказали: |
|
|
![]()
Сообщение
#65
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
HubTopic
Описание: Характеристика хаба. Указывает на поддержку команды $HubTopic. Данная характеристика является не обязательной, то есть хаб может поддерживать данную команду и без указания данной характеристики. Спасибо сказали: |
|
|
![]()
Сообщение
#66
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
IN
Описание: Пока неизвестная характеристика. |
|
|
![]()
Сообщение
#67
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
MCTo
Описание: Характеристика хаба. Данная характеристика указывает на поддержку команды $MCTo. На данный момент характеристику поддерживает хаб YnHub. Спасибо сказали: |
|
|
![]()
Сообщение
#68
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
NoGetINFO
Описание: Характеристика хаба/клиента. Характеристика указывает на то, что хабу не нужно получать от клиента команды $GetINFO для того, чтобы отсылать ему команды $MyINFO и $NickList. Это некое подобие характеристики QuickList, которая позволяет осуществлять быстрые получения списков пользователей. Важное замечание! При отсутствии у клиента характеристики NoHello и при наличии характеристики NoGetINFO хаб должен отсылать клиенту список пользователей при помощи команд $MyINFO и $NickList одновременно. При отсутствии обеих характеристик список пользователей отсылается по средствам команды $NickList, а список пользователей с участием команд $MyINFO можно будет получить только после отсылки на хаб команды $GetINFO. Характеристика поддерживается клиентами DC++, начиная с версии 0.302. Спасибо сказали: |
|
|
![]()
Сообщение
#69
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
NoHello
Описание: Характеристика хаба/клиента. Характеристика говорит о том, что при входе нового юзера на хаб, клиенту, уже находящемуся на хабе, не нужно отсылать оповещение о входе юзера в виде команды $Hello. Кроме этого, данная характеристика указывает на то, что хаб не должен отсылать клиенту при коннекте команду $NickList, которая отвечает за получение клиентом ников всех пользователей хаба, а клиент не должен отсылать на хаб команду $GetINFO для получения списка пользователей хаба. Для заполнения списка пользователей хаб должен отослать команду $MyINFO. Клиент отсылает команду $GetNickList для указания того, что он заинтересован в получении списка пользователей, однако, хаб не обязан ждать эту команду и должен отослать список пользователей в любом случае. Важное замечание! При наличии у клиента этой характеристики хаб при входе этого клиента будет отсылать клиенту список пользователей командами $MyINFO. Так как команда $MyINFO содержит ники пользователей, то получение ников командой $NickList является лишним действием. Поэтому данная характеристика является самым информативным и оптимальным вариантом. Характеристика поддерживается клиентами DC++, начиная с версии 0.305. Спасибо сказали: |
|
|
![]()
Сообщение
#70
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
OpPlus
Описание: Характеристика хаба. Указывает на то, что на хабе используются дополнительные команды для операторов. Например: $Ban, $TempBan, $UnBan, $GetBanList, $WhoIP, $Banned, $GetTopic, $SetTopic и тд. На данный момент команду поддерживает хаб VerliHub. Спасибо сказали: |
|
|
![]()
Сообщение
#71
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
QuickList
Описание: Характеристика хаба/клиента. Позволяет быстро входить на хаб, экономя трафик и снижая нагрузку на сервер при входе. Сравнение последовательностей входов с и без характеристики QuickList: Обозначения: H - хаб C - клиент С характеристикой QuickList Код H: $Lock EXTENDEDPROTOCOL[Код] Pk=[PrimaryKey]| C: $Supports NoHello QuickList| C: $Key [Рассчитанный_ключ]| H: $Supports NoHello QuickList| C: $MyINFO [Строка]| C: $GetNickList| H: Отсылает список пользователей. Без характеристики QuickList Код H: $Lock EXTENDEDPROTOCOL[Код] Pk=[PrimaryKey]| C: $Supports NoHello| C: $Key [Рассчитанный_ключ]| H: $Supports NoHello| C: $ValidateNick [Ник]| H: $Hello [Ник]| C: $Version [Версия]| C: $GetNickList| C: $MyINFO [Строка]| H: Отсылает список пользователей. Поддержка характеристики: Полноценно данную характеристику поддерживает хаб PtokaX. Со стороны клиентов, данную характеристику поддерживают следующие клиенты: CZDC, BCDC Внимание! Так как в данной характеристике отсутствуют шаги валидации ника и проверки версии, то при поддержке со стороны клиента данной характеристики на хабе PtokaX скриптовые функции ValidateNickArrival и VersionArrival для этого клиента выполняться не будут! |
|
|
![]()
Сообщение
#72
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
TTHSearch
Описание: Характеристика клиента. Эта характеристика указывает на то, что клиент поддерживает поиск файлов по уникальному идентификатору TTH. Поиск по TTH является наиболее эффективным. Для получения большей информации по поиску смотрите описание команды $Search. Характеристика поддерживается клиентами DC++, начиная с версии 0.307. Спасибо сказали: |
|
|
![]()
Сообщение
#73
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
UserCommand
Описание: Характеристика хаба/клиента. Данная характеристика указывает на поддержку со стороны хаба или клиента команды $UserCommand, которая позволяет клиенту создавать контекстные менюшки. Наличие этой характеристики в команде $Supports является не обязательным из-за большой распространённости команды. Характеристика поддерживается клиентами DC++, начиная с версии 0.300. Спасибо сказали: |
|
|
![]()
Сообщение
#74
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
UserIP2
Описание: Характеристика хаба/клиента. Указывает на то, что хабом (клиентом) поддерживается вторая версия команды $UserIP. Вторая версия отличается от первой тем, что входящему на хаб пользователю всегда отсылается команда $UserIP с его ником и ip адресом. Ip адреса остальных же пользователей отсылаются в зависимости от статуса пользователя на хабе. Характеристика поддерживается DC++ клиентами, начиная с версии 0.305. Спасибо сказали: |
|
|
![]()
Сообщение
#75
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Спасибо сказали: |
|
|
![]() ![]() |
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
![]() |
Описание протокола DC Для созадния PHP клиента-"клиента" |
7 | Ацкий Слон | 15 366 | 25.6.2020, 21:37 Посл. сообщение: Alexey |
![]() |
Расширения протокола Обсуждение новых расширений протокола |
2 | alex82 | 7 092 | 11.1.2017, 16:41 Посл. сообщение: PPA |
![]() |
![]() Делаю программу |
26 | Master255 | 28 848 | 12.1.2015, 0:38 Посл. сообщение: Master255 |
![]() |
От: вопрос по NMDC. От темы с ID: 4932 |
0 | MIKHAIL | 5 436 | 25.1.2013, 19:48 Посл. сообщение: MIKHAIL |
![]() |
вопрос по NMDC. . |
6 | Lamo | 13 147 | 29.5.2012, 19:35 Посл. сообщение: Lamo |
![]() |
![]() Спецификация и тестирование IPv6 в NMDC |
109 | gif-t | 93 710 | 26.2.2012, 10:12 Посл. сообщение: AMD |
![]() |
NMDC Extensions Расширения и новые команды NMDC протокола |
10 | Meloun | 18 088 | 19.2.2012, 16:39 Посл. сообщение: gif-t |
![]() |
От: NMDC Extensions От темы с ID: 5095 |
0 | Артём | 5 495 | 4.1.2012, 18:56 Посл. сообщение: Артём |
![]() |
Поддержка сетевого протокола SCTP | 2 | CSRedRat | 6 841 | 30.12.2011, 14:57 Посл. сообщение: pro |
![]() |
ВАЖНО: ![]() Eximius |
14 | Saymon21 | 22 909 | 2.10.2011, 16:59 Посл. сообщение: Артём |
![]() |
![]() Ударим опенсорсом по нездоровой шняге |
23 | alex82 | 38 132 | 11.4.2011, 18:12 Посл. сообщение: alex82 |
![]() |
От: Пингер NMDC-хабов От темы с ID: 4787 |
1 | Invisible | 6 590 | 4.4.2011, 1:10 Посл. сообщение: EvilNico |
![]() |
ВАЖНО: Описание Протокола ADC Advanced Direct Connect Protocol |
31 | Setuper | 74 606 | 14.3.2011, 15:15 Посл. сообщение: Setuper |
![]() |
Скачивание файл-листа, nmdc Последовательность команд |
16 | HackFresse | 25 676 | 3.11.2010, 12:48 Посл. сообщение: Atlant |
![]() |
Описание | 3 | denis | 9 208 | 13.2.2010, 14:27 Посл. сообщение: Артём |
![]() |
Сейчас: 8.9.2024, 2:58 |