Hallo zusammen,
ich habe eine Variable vom Typ Word und beschreibe diese mit dem Wert 999.
Anschließend wandle ich das in TIdBytes um und will es versenden über TIdTCPClient.
Das versenden klappt, es kommt auch im Server an.
Nur wenn ich mir den Inhalt von "aBytes" angucke vor dem versenden, steht da 231 und 3 drinne (in den beiden Bytes).
Wenn ich im Server etwas empfange, wandle ich die IdBytes wieder in ein Word um.
Versenden:
Delphi-Quellcode:
var
myValue : Word;
aBytes : TIdBytes;
begin
myValue := 999;
aBytes := ToBytes(myValue);
end;
Empfang:
Delphi-Quellcode:
var
myValue : Word;
aBytes : TIdBytes;
//Empfang... -> tmpStr = Eingangsstring vom TIdTCPServer
aBytes := ToBytes(tmpStr);
myValue := BytesToWord(aBytes);
Der Empfang (Server) wartet auf eine Nachricht und liest diese als String ein (mit Abschlusscharacter, da verschiedene Nachrichten empfangen werden können). Dieses String wandle ich wieder in IdBytes um, damit ich für die Auswertung komplett mit den IdBytes arbeiten kann.
Mein Problem ist jetzt, dass beim Empfang in den Bytes bereits etwas anderes steht wie beim absenden.
Absenden: 231 und 3
Empfang: 63 und 3
Könnt ihr mir da vielleicht weiterhelfen?
Den Empfang direkt als TIdBytes einlesen kann ich nicht, da ich da eine Bytesanzahl angeben muss, die ich einlesen will. Aber ich kann verschiedene Telegrammlängen empfangen, deswegen gehe ich über ein String mit Abschlusscharacter und kann darüber entscheiden, was ich mit der jeweiligen Nachricht mache.
Grüße