IdTCPServer1Execute 接收线程中,为什么不能同时接收字符串跟图片?
如果把它们分开可以正常接收,写在一起为啥不行?那么如何判断客户端传来的是汉字跟内存流呢?代码如下procedure TForm2.IdTCPServer1Execute(AThread: TIdPeerThread); ////接收发送信息线程
var
strem:TMemoryStream;
jpegimage:tjpegimage;
sCommand: string;
begin
  with AThread.Connection do
  begin
    sCommand := ReadLn();//接收汉字
    FLogEntry := sCommand + ' 来自于主机 '+ AThread.Connection.Socket.Binding.PeerIP;
    AThread.Synchronize(AddLogEntry);
    if AnsiStartsText('DATA ', sCommand) then
    begin
      FReceived := RightStr(sCommand, Length(sCommand)-5);
      WriteLn('200: 数据接收成功!');
      AThread.Synchronize(DisplayData);
    end
    else
    if SameText(sCommand, 'QUIT') then
    begin
      FLogEntry := '断开同主机 ' + AThread.Connection.Socket.Binding.PeerIP+ ' 的连接!';
      AThread.Synchronize(AddLogEntry);
      Disconnect;
    end
    else
   { begin
      WriteLn('500: 无法识别的命令!');
      FLogEntry := '无法识别命令:' + sCommand;
      AThread.Synchronize(AddLogEntry);
    end;//endif }
    begin   //接收图片
      strem:=TMemoryStream.Create;
      AThread.Connection.ReadStream(strem,-1,False);
     try
      strem.Position:=0;
      Image1.Picture.Graphic := nil;
      jpegimage := tjpegimage.Create ;
      jpegimage.LoadFromStream(strem);
      Image1.Picture.Graphic:=jpegimage;
     finally
      strem.Free;
      jpegimage.Free ;
      AThread.Connection.WriteLn('服务器已收到图片');
     end;
    end;
  end;
end;