// dichiarato globale
String Buffer;


void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Buffer+=Socket->ReceiveText();
Label2->Caption=Buffer.Length();


if (strstr(Buffer.c_str(), ",ENDMESSAGE;")
Memo1->Text=Buffer;
}

purtroppo eseguendo n avvi di messaggi al server il Memo ogni volta presenta il testo troncato nel senso che manca la parte finale ,ENDMESSAGE;.

Forse sbaglio a dichiarare il Buffer come globale?