Bom, tem uma forma de fazer isso. No lugar onde está o client, você programa isso em um botão, ou onde desejar: ClientSocket1.Socket.SendText(IntToStr('DADO1½DADO2½' +
EdtDADO3.Text + '½DADO4½DADO5½');
Esse ½ servirá para separar um dado de outro, e você ira interpretar isso no servidor. Se você tiver apenas um parametro deverá ficar assim:
ClientSocket1.Socket.SendText(IntToStr('DADO1½½½½½');
Ou seja, você nunca vai apagar esse ½;
No OnClientRead do servidor, você apaga tudo e adiciona esse código;
var
texto: array [0 .. 4] of string;
temptexto: AnsiString;
I, IDx: Integer;
begin
temptexto := Socket.ReceiveText;
IDx := 0;
for I := 1 to Length(temptexto) do
begin
if (temptexto[I] = '½') then
begin
texto[0] := Copy(temptexto, 1, I - 1);
IDx := I;
break;
end;
end;
for I := IDx + 1 to Length(temptexto) do
begin
if (temptexto[I] = '½') then
begin
texto[1] := Copy(temptexto, IDx + 1, I - IDx - 1);
IDx := I;
break;
end;
end;
for I := IDx + 1 to Length(temptexto) do
begin
if (temptexto[I] = '½') then
begin
texto[2] := Copy(temptexto, IDx + 1, I - IDx - 1);
IDx := I;
break;
end;
end;
for I := IDx + 1 to Length(temptexto) do
begin
if (temptexto[I] = '½') then
begin
texto[3] := Copy(temptexto, IDx + 1, I - IDx - 1);
IDx := I;
break;
end;
end;
for I := IDx + 1 to Length(temptexto) do
begin
if (temptexto[I] = '½') then
begin
texto[4] := Copy(temptexto, IDx + 1, I - IDx - 1);
IDx := I;
break;
end;
end;
Pronto, agora você já tem todos valores necessários; O texto[1] = DADO1; texto[2] = DADO2;
Lembrando que se precisar passar mais parametros, copie esse codigo:
for I := IDx + 1 to Length(temptexto) do
begin
if (temptexto[I] = '½') then
begin
texto[5] := Copy(temptexto, IDx + 1, I - IDx - 1);
IDx := I;
break;
end;
end; E cole abaixo dos outros no servidor, renomeando o texto[POEOPROXIMONUMEROAQUI]; Exemplo: Se o último for o texto[4], portanto você deverá renomear para texto[5] (DÃAAAAA. :S); E lembre-se de colocar mais um ½ no sendtext; Ps. O seu SendText SEMPRE deverá terminar com um ½; E agora, o melhor; Seja feliz! :)