Показать сообщение отдельно
Старый 27.02.2008, 19:09   #4
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: Все сначала...

Контрольная сумма считается для пакета начиная с кода типа пакета (исключаем первые два байта длины пакета) и заканчивая адресом предшествующим началу контрольной суммы.
Код:
procedure build_RequestServerList();
begin
{RequestServerList
Формат:
1A 00 // Длина
05 // Тип
XX XX XX XX // SessionKey1_FistPart из LoginOk
XX XX XX XX // SessionKey1_SecondPart из LoginOk
04 00 00 00 00 00 00
XX XX XX XX // чексумма 00 00 00 00}
  InitPkt; //инициализируем пакет
  WriteW($1a);//длина пакета 26
  WriteID($05);
  WriteD(SessionKey1_FistPart);
  WriteD(SessionKey1_SecondPart);
  WriteB($04);
  //WriteW($0);
  //WriteB($0);
  pos:=18; WriteD(pkt_ckecksum(2,16)); // чексумма
  //WriteD($0); //"\x00\x00\x00\x00";
  //к.сумма считается для блока начиная со смещ. 2, длиной 16 байт
  //add_ckecksum(2,16);
end;
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием