多个客户端同时从服务器端下载一个文件,下面代码流程是否有问题?
public
F: TFileStream;//公共变量
Procedure ThreadStart(); //一个socket客户端连进来请求下载
var
fileName:string
begin
FileName:=EditFileName.Text;
if FileName<>'' then
begin
F := TFileStream.Create(FileName,fmOpenRead); //打开文件
ReadFile();
end;
end;
Procedure ReadFile();//读取文件
var
n:integer;
begin
if F.Position < F.Size then
begin
n := F.Size - F.Position;
if n > 1024 then n := 1024;
SetLength(bytes,n);
F.ReadBuffer(bytes,n);
end;
end;
//////////////////////////
我是担心一个客户端读取了部份后,另个客户端又接入,把前面的客户端读到的文件的标志位又定位到当前的位置了.也就是说文件的读取位置改变造成出错