Entwickler-Ecke
Internet / Netzwerk - T*Socket
Piranha - Fr 25.07.08 21:21
Titel: T*Socket
Hallo,
ich benutze die Indy Komponenten TClientSocket und TServerSocket.
Ich programmiere testweise einen kleinen Chat, was auch erst sehr gut funktioniert hatte.
Nun Baue ich grade eine Userlist ein. Allerdings ist somit auch ein Protokoll
notwendig geworden. Dadurch müssen machmal viele Pakete sehr schnell hintereinander abgesendet.
Mein Problem ist nun das, einige Pakete dadurch Zusammengepakt werden.
Sende ich zum Beispiel: #CLST und #LISTUser123 ab, dann kommt am Ende '#CLST#LISTUser123' an :(
Da ich erst nur mit der Loopback Adresse getestet/gearbeitet habe, konnte ich die Fehler noch mit Delays beheben. Übers Internet funktioniert das aber nicht mehr.
Hat Jemand eine Lösung wie ich das "Verschmelzen" zweier abgesendeter Pakete verhindern kann?
Xentar - Fr 25.07.08 21:37
1. TClientSocket gehört nicht zu den Indies.
2. Denk dir ein Start- und Endezeichen für dein Protokoll aus. Somit siehst du immer, wann ein Paket aufhört und das nächste anfängt.
"Vorgesehen" sind hierfür die Zeichen $02 = Start of text und $03 = End of text.
Piranha - Sa 26.07.08 18:55
Danke, deine Tutorials befassen sich genau mit meinem Problem. :zustimm: :flehan:
Zu dumm das ich sie selber nicht gefunden hab.
Damit hat sich er Thread praktisch erledigt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!