Показать сообщение отдельно
Старый 02.12.2008, 21:10   #19
Пользователь
 
Аватар для DjSeNseI
 
Регистрация: 18.10.2008
Сообщений: 47
Сказал Спасибо: 18
Имеет 0 спасибок в 0 сообщенях
DjSeNseI пока неопределено
По умолчанию

Да принцепи всё хочу чрез TcpClient сделать. Но по этому компаненту мало инфы. Хотя у мя есть не сколько вареантов на отправку пакетов.Ща занова пишу клиента

Добавлено через 1 час 44 минуты
Народ может быть чексума у мя не правельная???


----------------------------------------------------------------------
procedure TL2Control.LSSetCheckSum; LSSetCheckSum
var
Pkt : String;
I : Integer;
Chksum, ECX: Longint;
begin
Pkt := '';
for I := 1 to Packet.Size-8 do Pkt := Pkt + Packet.Body[i];

chksum := 0;
i := 1;

while (i < Length(Pkt)) do
begin
ecx := Ord(pkt[i]);
ecx := ecx or Ord(pkt[i+1])shl 8;
ecx := ecx or Ord(pkt[i+2])shl 16;
ecx := ecx or Ord(pkt[i+3])shl 24;
chksum :=chksum xor ecx;
i := i+4;
end;

Pkt := IntToHex(Chksum, 8);
Packet.Body[Packet.Size-4] := Chr(StrToInt('$'+Copy(Pkt,1,2)));
Packet.Body[Packet.Size-5] := Chr(StrToInt('$'+Copy(Pkt,3,2)));
Packet.Body[Packet.Size-6] := Chr(StrToInt('$'+Copy(Pkt,5,2)));
Packet.Body[Packet.Size-7] := Chr(StrToInt('$'+Copy(Pkt,7,2)));
end;

Последний раз редактировалось DjSeNseI, 02.12.2008 в 21:10. Причина: Добавлено сообщение
DjSeNseI вне форума   Ответить с цитированием