Einzelnen Beitrag anzeigen

psycore

Registriert seit: 16. Sep 2006
Ort: Österreich
11 Beiträge
 
#1

TIdTCPClient Variablen differenzieren?

  Alt 7. Aug 2008, 01:28
Hallo,

folgendes Problem:

Ich arbeite an einer Client/Server Anwendung welche über Records kommuniziert, genauer genommen über einen varianten Record in welchen "Unterrecords" eingebunden werden.

Jetzt würde ich gerne eine Ping Funktion einbauen, da das Paket manchmal mehrere Sekunden von Client bis zum Server benötigt.
Natürlich wäre es dumm hier ebenfalls den Record zu verwenden, da dieser ja so viel Platz benötigt wie der größte der Unterrecords, derzeit um die 8000 Bytes, was natürlich viel zu viel für eine simple Ping Anfrage ist.
Aus diesem Grund habe ich mir eine Konstante MSG_PING = 1 angelegt, welche ich über einen Timer alle 500ms an den Server schicke. Das Problem ist nun: Der Server ist im onExecute darauf vorbereitet einen MsgRecord mit ReadBytes auszulesen. Wenn ich nun eine Zeile mit ReadInteger hinzufüge, wird ReadBytes nicht mehr ausgeführt.

Meine Frage also: Wie kann ich vor dem Auslesen herausfinden um welchen Variablentyp es sich handelt, bzw. kann ich das überhaupt? Wenn nein, wie soll ich es sonst lösen? Wäre es überhaupt intelligenter alles per Stream zu versenden?

Danke,

mfg,

psycore
  Mit Zitat antworten Zitat