|
Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
25.07.2010, 17:20 | #1 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
господа, поступило шикарное предложение по формату чанка:
(byte)Direction; (uint)UnixTime (uint)TickCount (uint)Data.Length (uint)DD.Length (byte[])Data (byte[])DD как вам? при этом хидер читается структурой, что удобно само по себе. после хидера идут данные опкода. после данных опкода идут DevelopersData, если DD.Length больше нуля. в данном варианте сведены к минимуму все затраты и DD стал переменной длины, что тоже должно всех устроить. правда в этом случае, к великому сожалению Константина, (uint)Data.Length будет содержать данные вместе с опкодом, а Data данные вместе с опкодом. ну в прочем это само по себе и вытекло бы, как ни крути. хех. вон VDm предлагает ту же идею и с хидером снифа. Последний раз редактировалось RomanRom2; 25.07.2010 в 17:24. |
25.07.2010, 18:29 | #2 | |
Новичок
Регистрация: 31.03.2010
Сообщений: 22
Сказал(а) спасибо: 2
Поблагодарили 23 раз(а) в 8 сообщениях
|
Цитата:
struct main_hdr{ int sign; uint pkt_hdr_offset; uint pkt_hdr_len; uint data_offset; ... } struct pkt_hdr_node{ int len; char [50] name; } потом с адреса pkt_hdr_offset забиваеш массив и получаеш свои типы, можно по name разбор делать или добавить константы типа. Получится структура велосипеда, который давно изобрели в каком-нибудь DBase. Один фиг через год станет понятно что UnixTime в каждом пакете это мусор (достаточно тиккаунтов на четверо суток в миллисекундах и даты создания файла или одного time в хедере) |
|
25.07.2010, 18:43 | #3 |
Новичок
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
|
|