Zitat:
die Anfrage von a) soll nich der Client auslesen sondern der Server...
Wie Sir Rufo schon sagte, der Client weiß immer, wieviel er gesendet hat. Dafür muss man sich nichtmal mit Sockets auskennen. Wenn du festlegst, dass zuerst immer ein Integer geschickt wird (Länge des Kommandos), muss der Server eben warten, bis 4 Byte (=SizeOf(Integer)) angekommen sind, und danach wartet er, bis das, was danach empfangen wurde, in der Länge dem Wert des zuerst übertragenen Intergers gleich oder größer ist.
Hätte ich meine Socket-Geschichten nicht in einer eigenen Bibliothek untergebracht und auch auf mitgelieferte Komponenten gebaut, würde ich dir hier ein dickes Beispiel posten können, aber das ist eben was komplett anderes, für 'außenstehende' kompliziert zu verstehen und eben auf mein eigenes Protokoll zugeschnitten..
LG