Huhu,
ich wollte nur mal kurz was zu den Indy-Kompos fragen. Ich hoffe ihr könnt mir da weiterhelfen
Also es geht um die TIdTCPClient bzw. TIdTCPServer.
Ich habe damit mal Teile des Netzwerk-Tutorials von Narses nachgebaut, hab aber ein paar Fragen zu der Übertragung der Daten...
Wenn ich z.B. die Protokollversion überprüfen möchte, kann ich dann die Daten nur zusammen übertragen, oder wäre es auch möglich, diese einzeln nacheinander zu übertragen? Ich habs momentan so, dass
1. Der Befehl als Integer
2. Die Versionsnummer als Integer
3. Die Subversionsnummer als Integer
4. Textlänge des nachfolgenden Strings als Integer
5. Protokollname als String
(Ich wandle den String vorher in TIdBytes und sende diese dann... Natürlich auch die entsprechende Länge dazu.)
und zwar nacheinander jeder Teil in einem eigenen Sendebefehl.
Jetzt hab ich mich aber gefragt, ob es theoretisch möglich wäre, dass dadurch Daten von anderen Clients dazwischenrutschen und ich beim Server dann überprüfen muss, von wem das Paket gekommen ist, oder ob das so überhaupt funktionieren kann... Ich teste es ja momentan nur alleine auf meinem Laptop und da klappt es so ohne Probleme...
Aber ich vermute mal, dass es besser wäre, alles zusammen in einem einzigen Datenblock zu senden, oder?
Wäre nett, wenn ihr mir da weiterhelfen könntest.
LG Darius
Edit1:
Ich möchte quasi wissen, was bei der TCP Kommunikation mit Indy-Komponenten oder überhaupt generell besser ist,
mehrere Write-Befehle hintereinander oder besser alles zusammen in einem einzigen Write-Befehl und falls man mehrere benutzt, ob man dann den Absender überprüfen muss, bzw. es möglich ist, dass ein Write-Befehl eines anderen Clienten beim Abarbeiten beim Server dazwischenrutschen kann...
Ich hoffe, dass ihr mich so verstanden habt XD