public
F: TFileStream; //在public里申明一个文件流来读取文件Procedure ReadFile(FileName:string);//读取文件
begin
F := TFileStream.Create(FileName,fmOpenRead);
...
end;Procedure Send1k(); //每次发送文件的1k数据,因为客户端是嵌入式产品,只能发1K
var
n:integer;
bytes::array of byte;
begin
...
n := F.Size - F.Position;
if n > 1024 then n := 1024;
SetLength(bytes,n);
F.ReadBuffer(bytes,n);
...
end;
上面的程序结构在以前多个客户端通过socket传同一个文件是可以的,现在
要改成给多个客户端传各自不同的文件,麻烦就出现了,因为
F: TFileStream是申明的一个公共变量,但A客户端读到F的某个文置时,B开始
读取文件,F变成B要传的那个文件了,那A再读F肯定就要读错的,那我现在要打
开多个文件流来同时操作多个文件,以响应不通客户端的socket的传送请求,请
问上面的结构要怎么改
F: TFileStream; //在public里申明一个文件流来读取文件Procedure ReadFile(FileName:string);//读取文件
begin
F := TFileStream.Create(FileName,fmOpenRead);
...
end;Procedure Send1k(); //每次发送文件的1k数据,因为客户端是嵌入式产品,只能发1K
var
n:integer;
bytes::array of byte;
begin
...
n := F.Size - F.Position;
if n > 1024 then n := 1024;
SetLength(bytes,n);
F.ReadBuffer(bytes,n);
...
end;
上面的程序结构在以前多个客户端通过socket传同一个文件是可以的,现在
要改成给多个客户端传各自不同的文件,麻烦就出现了,因为
F: TFileStream是申明的一个公共变量,但A客户端读到F的某个文置时,B开始
读取文件,F变成B要传的那个文件了,那A再读F肯定就要读错的,那我现在要打
开多个文件流来同时操作多个文件,以响应不通客户端的socket的传送请求,请
问上面的结构要怎么改
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货