Silente:
Sono totalmente ignorante in materia e non so dove informarmi, ma a me viene una curiosità:
Nel circuito che stai utilizzando tu entrambi (server e client) devono poter fare domande? Perché se così fosse non sarebbe (ripeto che NON NE SO NULLA) possibile distinguerle soltanto dal destinatario? O dal fatto che le stia leggendo o scrivendo? Perché se io che leggo sono il server, penso, posso leggere soltanto domande, alle quali scrivo risposte, mentre se io che leggo sono client posso leggere solo risposte mentre scrivo solo domande.
Cosa non ho capito?
Qual è la differenza tra un client che scrive una domanda e un server che invia una risposta?
O lo capisci dall'id, perchè il client gli aveva attribuito un "segnaposto", (ed è il metodo che spero di trovare) oppure dal contenuto del messaggio (almeno credo).
Nel momento in cui ho una comunicazione in entrata, per capire se è una domanda o risposta, devo riceverla tutta e analizzare il contenuto e in base a quello posso capirlo. Come ho detto non credo sia la soluzione più performante ma il problema principale è che a quanto capisco, la logica dello sketch di partenza è che il server scatta per primo (c'è un messaggio e lui dice "è mio, è mio!") e cerca di interpretarlo.
Poi visto che il server come chiamata si aspetta solo una string (del tipo Google) quando sente un a capo dice "ah ok, fine della comunicazione".
La risposta al client è più lunga, piena di "a capo" e quindi il server crede di avere finito ogni volta che ne trova uno