AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TIdTCPClient Variablen differenzieren?
Thema durchsuchen
Ansicht
Themen-Optionen

TIdTCPClient Variablen differenzieren?

Ein Thema von psycore · begonnen am 7. Aug 2008 · letzter Beitrag vom 8. Aug 2008
Antwort Antwort
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
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#2

Re: TIdTCPClient Variablen differenzieren?

  Alt 7. Aug 2008, 03:39
Du kannst in einem Bytestream nicht erkennen um welchen Datentypen es sich handelt.

Solche Dinge werden über ein Protokoll geregelet.
Die Größe und Struktur der Records muss dem Client/Server auch bekannt sein, daraus leite ich ab, dass die
Konventionen dafür dein Protokoll sind.

Schau dir die Implementierung der Kommunikation im Detail an, dann solltest du finden, was du brauchst.

MfG
odg
Stellen Sie sich bitte Zirkusmusik vor.
  Mit Zitat antworten Zitat
psycore

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

Re: TIdTCPClient Variablen differenzieren?

  Alt 8. Aug 2008, 10:35
Naja gut, das Problem ist halt trotzdem noch dass ich den Ping in einem anderen Rhythmus laufen lassen wollte als die normalen Pakete. Werde mir aber was überlegen und ggf. nochmal hier nachfragen falls Unklarheiten entstehen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz