|
|
Подключение к серверу.
Как нетрудно догадаться, авторизация пользователя начинается с подключения к серверу.
Для создания клиентского сокета используется AF_INET (он, в свою очередь,
используется для указания семейства протоколов IPv4. Адрес основного сервера DMconnect
всегда представлен в виде IPv4, так что этот параметр никогда не меняется).
Для сокета потока DMconnect использует SOCK_STREAM, этот параметр также никогда не
меняется.
Приём и отправка сообщений.
На стороне сервера все ваши отправленные сообщения "хранятся" ровно столько времени,
сколько это нужно для отправки всем пользователям на подсервере. После этого имя
отправителя и текст сообщения будет невозможно извлечь. Время отправки на сервере также
не сохраняется. Сообщения всегда работают в кодировке UTF-8, а клиенты работают
с параметром recv в значении 1024 байта, т. е. количество принимаемых данных
не ограничено. На сервере ситуация аналогична - сообщения можно отправлять любого
размера, ограничитель "вшит" в сам официальный клиент.
Для отправки сообщения, нужно воспользоваться созданным ранее сокетом подключения и
функцией, как ни странно, отправки и кодирования (.encode) в UTF-8.
Выход с сервера.
Для выхода с сервера (выход с определённого подсервера не поддерживается), нужно
закрыть соединение с сервером через ваш клиентский сокет. Сервер отправит всем
пользователям подсервера, на котором вы были, сообщение вида:
*** ВАШЕ ИМЯ has left the server.
Также, для "предохранения", сервер повторно закрывает соединение с вашим
клиентским сокетом (только при TCP-подключении).
Системные сообщения.
Обратите внимание, что большинство системных сообщений (обычно, во время
авторизации пользователя) по TCP могут приходить с лишними знаками переноса ("\n").
Обычно, примерно с двумя или тремя. Дабы этого избежать, в парсерах рекомендуется
добавить автоматическое удаление переносов / лишних пробелов.
| |
|
|
|
|