对于Stream的网络传输总是报错
我使用文件流传输文件的时候似乎客户端没有回应,使用内存流传输服务端又报错,单步也跟踪不到哪一步的错误
帮我看一下代码上哪里有问题
if MidStr(VerInfo,5,4) = 'OKOK' then
begin
//StarSend(I);
try
Files := TFileStream.Create(FFileName,fmOpenRead or fmShareExclusive);
Files.Position := 0;
// FFileStream.Create ; //使用内存流
// FFileStream.LoadFromStream(Files);
// FFileStream.Position := 0;
session[i].CSocket.SendText('Tra_Info;'+inttostr(Files.Size));
finally
Files.Free;
end;
end
else
if MidStr(VerInfo,5,4) = 'Wait' then
begin
//SendFile; 发送文件
try
session[i].CSocket.SendStream(Files);//使用内存流发送就把Files改成FFileStream
finally
Files.Free;
end;
end;
[解决办法]
错误信息是什么呢,可以自己写日志,记录每一步,这样出错时也知道是哪一步,或者try except,在except中设断点
[解决办法]
要分包传输,就是每次取多少传送
直到大小等于文件大小,就发送转送完毕命令
[解决办法]
else 里的 Files 创建了吗
[解决办法]
1、finally换成except来拦截错误
2、根据大小分包传输