各位好: 其中mem:=Tfilestream.create();p是:p:Array[0..1023] of byte; Pos,Len:Integer;
While mem.Position<Mem.Size-1 do//一次只发1024个字节,字节数不能太多,不过应该还可以增加一些.
begin if Mem.Size-mem.Position>=1024 then
begin
Mem.Read(p,Len);
IdtcpClient1.WriteBuffer(p,len);
mem.Position:=mem.Position+len;
end
else
begin
len:=mem.Size-mem.Position;
mem.Read(p,len);
IdtcpClient1.WriteBuffer(p,len);
mem.Position:=mem.size-1;
end;
end;接收:
if SaveDialog1.Execute then
begin
savedialog1.FileName:=fname;
// mem.Size:=strtoint(ReadLn());//获取文件长度
Mem:=TFileStream.Create(savedialog1.FileName,fmCreate);
mem.Size:=strtoint(mid);//获取文件长度
try
mem.Position:=0;
len:=1024;
mem.Seek(0,0);
while mem.Position<mem.Size-1 do
begin
if mem.Size-mem.Position>=1024 then
begin
AThread.Connection.OpenWriteBuffer(); AThread.Connection.ReadBuffer(p,len);//端点到此就飞了
mem.write(p,len);
mem.Position:=mem.Position+len;
end
else
BEGIN
AThread.Connection.ReadBuffer(p,(mem.Size-mem.Position));//同样
mem.write(p,(mem.Size-mem.Position));
mem.Position:=mem.Size-1;
end;
end; 各位: idtcpserver 如何从缓冲区读出数据然后存到文件里?真诚的谢谢.我在线等
While mem.Position<Mem.Size-1 do//一次只发1024个字节,字节数不能太多,不过应该还可以增加一些.
begin if Mem.Size-mem.Position>=1024 then
begin
Mem.Read(p,Len);
IdtcpClient1.WriteBuffer(p,len);
mem.Position:=mem.Position+len;
end
else
begin
len:=mem.Size-mem.Position;
mem.Read(p,len);
IdtcpClient1.WriteBuffer(p,len);
mem.Position:=mem.size-1;
end;
end;接收:
if SaveDialog1.Execute then
begin
savedialog1.FileName:=fname;
// mem.Size:=strtoint(ReadLn());//获取文件长度
Mem:=TFileStream.Create(savedialog1.FileName,fmCreate);
mem.Size:=strtoint(mid);//获取文件长度
try
mem.Position:=0;
len:=1024;
mem.Seek(0,0);
while mem.Position<mem.Size-1 do
begin
if mem.Size-mem.Position>=1024 then
begin
AThread.Connection.OpenWriteBuffer(); AThread.Connection.ReadBuffer(p,len);//端点到此就飞了
mem.write(p,len);
mem.Position:=mem.Position+len;
end
else
BEGIN
AThread.Connection.ReadBuffer(p,(mem.Size-mem.Position));//同样
mem.write(p,(mem.Size-mem.Position));
mem.Position:=mem.Size-1;
end;
end; 各位: idtcpserver 如何从缓冲区读出数据然后存到文件里?真诚的谢谢.我在线等
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货