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