Показать сообщение отдельно
Старый 11.02.2012, 14:14   #19
Пользователь
 
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Tin-moon пока неопределено
По умолчанию

Kilatif помоги понять что тут происходит?
Код:
      MAX_PKT_SIZE=$FFFF;
      FillChar(main_buff,Length(main_buff),0); // заполнить буфер 0
      Len:=recv(RS_Sock,main_buff,MAX_PKT_SIZE,0); // я так понимаю пишем в буфер но зачем размер MAX_PKT_SIZE, но Len чему будет равно??
      inc(RecvPktCount);            // +1
      LS_parser(main_buff,Len);   // тут непонятно чему будет равна длина??
Первый приходящий пакет 186

Код:
procedure LS_parser(buff: array of byte; Len: integer);
var
  temp: array [0..MAX_PKT_SIZE-1] of char; // какой размер тут будет ??
  s: string;
  i: integer;
begin
  if RecvPktCount=1 then begin
    if buff[2]=0 then DecodeBF:=false
    else DecodeBF:=true;
  end;
  if DecodeBF then begin
    Move(buff[2],temp[0],Len-2);  // вот это критично.. что тут происходит
    bf.bfDecode(temp,Len-2);
    if temp[0]=#0 then begin
      SetLength(s,Len-2);
      for i:=0 to Len-3 do s[i+1]:=temp[i];
      s:=AntiXor(s);
      for i:=0 to Len-3 do temp[i]:=s[i+1];
      //Move(s[1],temp[0],Length(s));
    end;
    Move(temp[0],buff[2],Len-2);
  end;
Пробую уже работать, пока валится наверно из-за Move
Вложения
Тип файла: rar Unit1.rar (2.7 Кб, 59 просмотров)
Tin-moon вне форума   Ответить с цитированием