Префиксы
DMconnect
Обычные сообщения DMconnect представляет с разделяющим символом 3A, например, сообщение вида:
Test: test (пример сообщения в подсервере)
В HEX уже будет представлено, как
54 65 73 74 3A 20 74 65 73 74 (представление в HEX)
54 65 73 74 - имя учётной записи, с которой отправлено сообщение; 74 65 73 74 - само сообщение. А что такое 3A 20? Ранее мы уже разбирали эти разделяющие символы, но не вдавались в подробности. Итак, 3A здесь - это начинающий символ для "сигнала" разделения. С помощью него сервер и клиент понимают, что далее следует разделённое сообщение. 20 - сам разделительный символ. Он позволяет серверу точно идентицифировать вид сообщения, которое он получил. У каждой разделяющей структуры (на деле, она всего одна - 3A 20, мы сказали об этом выше) установлен чёткий размер в байтах. Например, для 3A 20 - это 2 байта / 16 бит. Представим разделительную структуру в виде бинарной последовательности последовательности:
00111010 00100000 (00111010 - 3A; 00100000 - 20)
В формате XX UTF-8 данная структура будет выглядеть следующим образом:
003A0020
Здесь разделительным символом, как это бы не было парадоксально, разделительной структуры выступает 00: просто уберите из представленной выше строки эти символы - получите простые 3A 20!
Системные сообщения вызываются при:
Посмотрим паттерны с использованием этого префикса:
*** USER has joined the server. (при входе пользователя на подсервер) *** USER has left the server. (при выходе пользователя с подсервера) *** USER ACTION (статус пользователя, четкого паттерна и длины нет)
За все эти паттерны отвечает один префикс - ***. Посмотрим на него в HEX:
2A 2A 2A (*** в HEX)
По сути, это просто продублированные 2A. Чёткая длина этого префикса - 3 байта / 24 бита. Префикс в формате XX UTF-8:
002A002A002A
Аналогично с разделяющей структурой 3A 20, здесь разделителями выступают символы 00. Бинарная последовательность этого префикса будет выглядеть как:
00101010 00101010 00101010 (00101010 - дублирует 2A)
Префикс для приватных сообщений совмещает в себе собственный паттерн и паттерн разделяющей структуры сообщения на подсервере (см. первый раздел). Рассмотрим пример:
(Private) Test: test
Т. е. обработка таких сообщений аналогична обработчику обычных сообщений с подсерверов, однако перед каждым сообщением присутствует префикс (Private). Он в HEX:
28 50 72 69 76 61 74 65 29 20 (Private)
Чёткая длина данного префикса - 9 байт / 72 бита. Бинарная последовательность:
00101000 01010000 01110010 01101001 01110110 01100001 01110100 01100101 00101001 (Private)
В XX UTF-8 каждый символ строки просто разделён с помощью символа 00.