FTP断点续传软件的研究与实现
摘要:随着互联网的技术的发展,互联网的各项应用也逐渐普及并且受到广大网络用户的宣传和推广。文件下载作为互联网应用的一项基础服务,从互联网开始应用到现在,一直是一项最大的应用服务项目。传统的FTP下载,经常因为一些特殊的原因,例如断电断网等导致下载半途而废,所以实现断点续传是下载的一项基本的要求。本系统基于FTP协议,采用多线程实现文件的断点续传功能,实现了文件中途终止,重启动继续下载的功能,同时设置8线程,有效的提高带宽的使用效率,极大的提高了下载速度。通过本次设计,加深了对基于Windowsocket的认识和学习,同时熟悉了FTP协议,对自己熟练掌握VC++的网络编程也是一次卓有成效的练兵。
关键词:文件下载 FTP 多线程 断点续传
目 录
1 引言
随着Internet的发展,进入信息时代后快速获得网络共享资源成为很简单的事情,人们对互联网也有了很大的依赖性。人们甚至希望只轻松点击鼠标就可以得到自己想要的东西。比如,针对一些专业的论坛提供了很多相关资料以方便人们阅读或了解;还有更多的人希望能过下载到他们喜欢听得音乐、好看的图片、喜欢的电影等等。也可以看出人们在上网时再也不单是打开浏览器来浏览网页,越来越多的人们开始使用下载软件来获取资源。同时人们也更希望使用更新更快的下载软件。
由于用户下载需求的增大,也要求下载软件能够迅速完成对资源的下载。多线程程序设计可以很好的解决程序并发的问题。最恰当的比喻就是用户会感到CPU似乎同时出现在两个地方,在下载软件中应用多线程技术可以理解为将一个下载任务分成若干份来完成,其中的并发控制将使下载的效率大大提高。
由于下载资源是一个过程,当中用到的时间可能会很长。那么在很长的这段时间中很有可能会出现很多的意外情况使下载中断或是停止,比如电源意外被切断、网络中断、或是操作系统故障导致系统重新启动。这些原因都会导致下载的中断,但是当用户重新下载资源时发现原来下载的数据已经消失你还是要回头再来。断点续传就是用来解决这样的问题的,它的任务是在下载任务停止时,记录当前下载的信息并且利用网络协议中的一些重定向机制继续完成下载任务而不必从头再来。