A ver, creo que ya estoy cerca...
Resulta que si hago exactamente lo mismo pero con un memo en vez de un listbox funciona perfectamente...
Es decir, si pongo:
Código Delphi
[-]
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
datos:widestring;
begin
lbres.clear;
datos:=socket.ReceiveText;
memo1.text:=memo1.text+datos;
lbres.Items.text:=lbres.Items.text+datos;
end;
entonces, en el listbox me sigue pasando lo mismo, pero en el memo si que me aparece el listado completo...
lo único que se me ocurre es que el evento OnRead del socket cliente se dispara cada vez que llega un paquete, o sea, 3 veces en este caso, con una sola instrucción sendtext en el server, con lo que hace el clear del listbox, y por eso solo se me ve el ultimo listado...