0

这是我发送单个文件的编码。

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;
4

1 回答 1

2

通过单个连接同时发送多个文件的唯一方法是将文件写入小块,以便您可以混合它们 - 发送文件 A 的块 1,然后发送文件 B 的块 1,然后发送文件的块 2 A,依此类推——每个块描述它属于哪个文件。否则,您必须在单独的连接上发送每个文件。

于 2013-11-12T05:52:07.880 回答