Как отправить / получить несколько файлов через TIdTCPServer/TidTCPClient одновременно?

Это моя кодировка отправки одного файла.

procedure TForm1.IdTCPServerExecute(AThread: TIdPeerThread);
begin
  ...
  try
    ...
    AFileStream := TFileStream.Create(AFileName, fmOpenRead + fmShareDenyNone);

    try
      AThread.Connection.WriteStream(AFileStream, true, true);
    finally
      AFileStream.Free;
    end;
  except
    AThread.Connection.WriteLn('N');
  end;
  AThread.Connection.Disconnect;
end;

Если у меня было несколько файлов для отправки одновременно, подскажите, пожалуйста, как это сделать?

Можно ли прочитать его сразу, используя

procedure TForm1.ReadImageFromServer(ACmd: string);
begin    
  with IdTCPClient1 do begin
    ...
    AStreamSize :=  ReadInteger;
    ReadStream(AMemStream, AStreamSize, false);
    ...
  end;
end;

1 ответ

Единственный способ отправить несколько файлов одновременно по одному соединению - это записать файлы небольшими порциями, чтобы вы могли их смешать - отправьте кусок 1 файла A, затем отправьте кусок 1 файла B, затем отправьте кусок 2 файла A и т. Д. - где каждый блок описывает, к какому файлу он принадлежит. В противном случае вы должны отправить каждый файл на отдельное соединение.

Другие вопросы по тегам