这是我发送单个文件的编码。
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;
答案 0 :(得分:2)
通过单个连接同时发送多个文件的唯一方法是以小块编写文件,这样你就可以混合它们 - 发送文件A的块1,然后发送文件B的块1,然后发送块文件A中的2,依此类推 - 每个块描述它所属的文件。否则,您必须在单独的连接上发送每个文件。