Deine Vorstellung du könntest direkt "Befehle" vom Client zum Server schicken ist falsch.
Der Client mag zwar eine zusammengehörige Bytefolge schicken; ob diese Bytes als zusammengehörende Folge beim Server so ankommen ist mehr als unsicher.
Als Programmierer muss man sich also selbst darum kümmern die Befehle zu trennen.
Dazu kann man z.B. ein Trennzeichen definieren damit man weiss wo der letzte Befehl aufhört und der Nächste beginnt.
Jupp, entweder man macht alles selber,
oder man macht es nicht selber und legt noch eine Schicht dazwischen, welche diese Arbeit übernimmt.
DataSnap/
MIDAS, RemObjects, REST,
SOAP, PPC, ... und selbst HTTP,
FTP,
IRC usw. sind praktisch soeine weitere Schicht, welche für bestimmte Aufgaben ausgelegt sind.
TCP ist halt nur das Übertragungssteuerungsprotokoll (Transmission Control Protocol), welches sich ausschließlich um die Datenübertragung kümmert.
Ob und wie die Daten danach verarbeit und "gruppiert" werden, ist dem Ding sowas von egal und es hat sich darum auch garnicht zu kümmern. Es sorgt nur dafür, daß die Daten drüben ankommen und gruppiert und/oder teilt/portioniert die Daten einfach so, wie es für den Transport besser/nötig ist.
Das Sammeln/Zusammenfassen und Auswerten gehört dann in die nächste Schicht. Also du, oder noch eine weitere Zwischenschicht.