首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现文件下载器检测通信中断?

如何实现文件下载器检测通信中断?
EN

Stack Overflow用户
提问于 2013-05-14 09:50:38
回答 2查看 127关注 0票数 1

我需要在C#中实现一个文件下载器。此下载程序将在客户端计算机上运行,并将根据几个条件下载多个文件。

我的主要限制是客户端可能会在下载过程中脱机(有时会不止一次),所以我需要发生以下事情:

1)下载器注意到不再有网络通信,暂停下载。

2)通信恢复后,Downloader应恢复下载,并继续收集包,将其添加到已下载到本地磁盘的包中。

我查看了之前的文章,发现有两个选项-- WebClient和WebRequest (使用其中一个继承类)。我想知道是否有人可以根据我指定的要求建议使用哪一个。如何检测通信中断?

EN

回答 2

Stack Overflow用户

发布于 2013-05-14 09:56:18

你将需要System.Net.HttpWebRequest来发送超文本传输协议请求和System.IO.FileStream来访问文件。需要的两种方法是HttpWebRequest.AddRangeFilestream.seek

HttpWebRequest.AddRange方法向请求添加字节范围标头,range参数指定范围的起始点。服务器将开始发送从指定的range参数到HTTP实体中数据末尾的数据。而Filestream.seek方法用于访问流中的当前位置。

Source and example

票数 0
EN

Stack Overflow用户

发布于 2013-05-14 10:07:19

你需要下载简历(如果你正在下载的服务器支持),这意味着你应该使用WebRequest,因为使用WebClient你不能做到这一点(可能下一个版本将支持范围请求)。

一旦连接断开,正在读取网络流的代码就会抛出异常。这会告诉你下载有问题(即网络问题),然后你可以在某些时间段尝试来建立一个新的连接,如果成功,从最后一个成功的字节恢复(使用HTTP头中的RANGE )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16533920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档