J
jiangxk
Unregistered / Unconfirmed
GUEST, unregistred user!
我用TIdTCPClient,TIdTCPServer进行文件传输
关键代码
接收:
var
AStream:TFileStream;
TCPClient: TIdTCPClient;
...
AStream := TFileStream.Create(SFilename, fmCreate); //创建文件流
TCPClient.ReadStream(AStream,-1,False); //接收文件流
AStream.Free; //释放流
发送:
procedure TPKU_comsvr.PKUTCPServerExecute(AThread: TIdPeerThread);
begin
...
AStream := TFileStream.Create(filename,fmOpenRead);
AThread.Connection.WriteStream(Astream,True,true); //发送文件
AStream.Free;
...
end;
在网络条件好的情况下没有问题,但是在网络情况不好的情况下,有可能在文件传了一半的情况下就停下来了,但是也不报任何错误和异常
现在我想加一个功能就是如果文件传到一半停下来的时候,超过一定的时间就取消文件的传输,并且断开连接,请问有什么好的办法解决判断传送文件超时并断开连接的办法,谢谢了
注:我传输的文件本身并不大,最大的100K
关键代码
接收:
var
AStream:TFileStream;
TCPClient: TIdTCPClient;
...
AStream := TFileStream.Create(SFilename, fmCreate); //创建文件流
TCPClient.ReadStream(AStream,-1,False); //接收文件流
AStream.Free; //释放流
发送:
procedure TPKU_comsvr.PKUTCPServerExecute(AThread: TIdPeerThread);
begin
...
AStream := TFileStream.Create(filename,fmOpenRead);
AThread.Connection.WriteStream(Astream,True,true); //发送文件
AStream.Free;
...
end;
在网络条件好的情况下没有问题,但是在网络情况不好的情况下,有可能在文件传了一半的情况下就停下来了,但是也不报任何错误和异常
现在我想加一个功能就是如果文件传到一半停下来的时候,超过一定的时间就取消文件的传输,并且断开连接,请问有什么好的办法解决判断传送文件超时并断开连接的办法,谢谢了
注:我传输的文件本身并不大,最大的100K