Man bekommt das überhaupt nicht heraus.
TCP hat kein 'habe Fertig', d.h. die Gegenstelle kippt ihre Nachrichten einfach in den Socket und die purzeln dann auf der anderen Seite wieder heraus. Woher willst Du denn wissen, wann die andere Seite fertig ist, wenn nicht über eine 'Abmachung', oder eben das 'Protokoll'.
Das Protokoll, also die Regeln, welche Fragen gestellt und welche Antworten in welcher Form gesendet werden, legen fest, wie und auch wie viele Daten übertragen werden.
I.A. definiert das Übertragunsprotokoll eine Art Rahmen, innerhalb dessen die Daten gesendet werden, z.B. STX <Daten> ETX , wobei STX und ETX besondere Zeichen sind. (STX) wird manchmal weggelassen.
Eine andere Möglichkeit wäre <Länge> <Daten>. Es wird also zunächst die Anzahl der zu übertragenen Daten gesendet, und danach die Daten selbst.
Bei beiden Verfahren weiss die Gegenstelle, wann Schluss ist.
Hier werden einfach nur Zeichenketten, durch CR LF getrennt, verschickt. Auch ok. Du musst dann eben pro Frage genau wissen, wie viele Zeilen/Zeichen als Rückantwort gesendet werden.
Definier dir pro Frage eine Klasse und überlasse dann der konkreten Klasse das Einlesen der Antwort.