RUOSI
Суббота, 23.11.2024, 12:27



Приветствую Вас Гость | RSS
[ Главная ] [ Разбираемся с протоколом. - Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ruosi  
Разбираемся с протоколом.
JASДата: Среда, 14.01.2009, 11:17 | Сообщение # 1
Группа: Пользователи
Сообщений: 1
Репутация: 1
Статус: Offline
Есть проблема в незнании протокола.
А именно:
Когда применяется zlib?
Есть-ли какой-то "простой" способ отделить друг от друга пакеты? Кроме как "тупо парсить" динамические пакеты и считать байты для фиксированных.
Список вопросов будет пополняться.

Собственно надо это затем, чтоб построить "прослойку" между клиентом и сервером... Дабы можно было вклиниться своими грязными руками в протокол и показывать на клиенте то, чего не передал сервер. Надо это для пары интересных задумок, которые как обычно "перевернут мир УО с ног на голову и привлекут массы игроков"... Что выйдет - не знаю. Надеюсь не пшик.

И ещё, у кого-нибудь есть описание формата файлов от KR клиента?

Добавлено (14.01.2009, 11:17)
---------------------------------------------
Ну что-ж... Из того с чем я разобрался:
- zLib нужен для 2D клиента только для того чтобы гампы "раскрывать", то есть сам протокол им не жмется.
- Жмется протокол входящий с сервера. Жмется алгоритмом, основанном на алгоритме Хаффмана с жестко прописанной таблицей. Собственно сжатие можно посмотреть в RunUO Core/Network/Compression.cs декомпрессии там нет, но ее довольно легко написать. Если в одном пакете TCP приходят несколько пакетов UO, то эти пакеты byte-boundary. То есть после флага завершения пакета в алгоритме Хаффмана надо пропустить текущий байт, если он не полностью занят.

По поводу формата файлов, описание есть в и-нете. Сейчас под рукой нету, но можно спокойно найти по запросу interface.uop.

Вроде пока что все.

 
  • Страница 1 из 1
  • 1
Поиск:

Copyright RUOSI © 2024      Сайт управляется системой uCoz