18038435860

什么是FTP断点续传?

时间:2018-11-07 08:40:20 点击:987 来源:易速网络

        有时用户通过FTP下传文件需要历时数小时,万一线路中断,不具备FTP断点续传的FTP服务器就只能从头重传;厦门中资源“虚拟主机”上的FTP服务器具有FTP断点续传能力,允许用户从上传断线的地方继续传动,这样大大减少了用户的烦恼。

其实FTP断点续传的原理很简单,可分为断点下载和断点上传。

客户端的实现步骤如下:

一、下载:

1、向服务器发送“REST + 本地文件长度”命令,告诉服务器,客户端要断点下载了。这时服务器还不知道客户端要下载哪个文件;

要实现FTP的断点续传,FTP服务器必须支持REST指令,这条指令在FTP协议文本RFC959中就已经定义了,不过它不是FTP服务器必须支持的指令。一般,你可以在下载前使用REST 100命令进行实验,如果服务器正常执行了这条命令,说明该服务器支持FTP断点续传。REST后面跟的数表示下载文件的起始位置,而REST 0表示从文件最开始处下载。REST命令本身并不执行下载功能,你仍需要使用RETR命令执行下载工作。

2、向服务器发送“RETR + 文件名”命令,通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据。

3、客户端定位本地文件指针(文件末尾);

4、两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据通道,循环调用recv接收数据并追加入本地文件;

 

二、上传:

1、获取服务器上和本地要上传文件的同名文件大小;

2、向服务器发送“APPE + 文件名”,通知服务器,接下来从数据通道发送给你的数据要附加到这个文件末尾。

3、定位本地文件指针(和FTP上文件大小相同的位置)

4、从文件指针处读数据并发送。