procedure TForm1.Button2Click(Sender: TObject);
const
  TIMEOUT=60000;
type
  TRec=packed record //数据包格式
    cmd: integer;
    dat: array[0..100] of char;
  end;
var
  Stream: TWinSocketStream;
  rec: TRec;
begin
  if not tcp.Active then exit;
  Stream:=TWinSocketStream.Create(tcp.Socket,TIMEOUT);
  try
    rec.cmd:=1;
    Stream.Write(rec,SizeOf(rec));
    if Stream.WaitForData(TIMEOUT) then begin
      Stream.Read(rec,SizeOf(rec));
      memoClt.Lines.Add(format('收到返回:[命令号=%1d,数据=%1s]',[rec.cmd,rec.dat]));
    end;
  finally
    Stream.Free;
  end;
end;