TIdTCPClient,TIdTCPServer网络传输文件的问题

jxk 2003-09-12 03:39:35
我用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;
在网络条件好的情况下没有问题,但是在网络情况不好的情况下,有可能在文件传了一半的情况下就停下来了,但是也不报任何错误和异常
现在我想加一个功能就是如果文件传到一半停下来的时候,超过一定的时间就取消文件的传输,并且断开连接,请问怎么在程序里面判断传送文件超时,谢谢了
...全文
139 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly_liuyang 2003-11-08
  • 打赏
  • 举报
回复
该可以的
Indy有Demos了,用那个看看了

跟踪到Indy内部分析
Indy有一些小Bug的

我用的Indy都要修改才能满足要求
lxhong1980 2003-11-08
  • 打赏
  • 举报
回复
up
jxk 2003-09-17
  • 打赏
  • 举报
回复
没有人知道吗
zdfcqu 2003-09-16
  • 打赏
  • 举报
回复
mark
jxk 2003-09-16
  • 打赏
  • 举报
回复
up
rwdx 2003-09-15
  • 打赏
  • 举报
回复
up
jxk 2003-09-15
  • 打赏
  • 举报
回复
up
jxk 2003-09-12
  • 打赏
  • 举报
回复
可是我传的文件本来就很小啊
而且在局域网测试的时候没有这种情况,在拨号传送的时候才出现这种情况啊
duxin 2003-09-12
  • 打赏
  • 举报
回复
呵呵 我遇到过这个问题 我在状态好的时候也是传一半

好像主要是他不支持传输大文件 不该网络的原因

你分成块传吧
zjqyb 2003-09-12
  • 打赏
  • 举报
回复
自己分块传输
zjqyb 2003-09-12
  • 打赏
  • 举报
回复
自己分块传输

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧