FTP该如何实现断点续传?

FTP该如何实现断点续传?,第1张

客户端的实现步骤如下:

一、下载:

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、从文件指针处读数据并发送。

代码里将断点上传和断点下载放到同一个函数(MoveFile)里,通过get参数说明是上传还是下载。

qq在传送文件时支持断点续传功能(所谓断点续传,也就是说转送的过程中如果网络中断,则下次连线后可以从上次断开的地方接着传,不至于前功尽弃),但需要用户打开启用断点续传的选项。具体设置步骤如下:

(1)左键单击状态栏上的qq图标,在d出的菜单中选择“个人设置”,再在d出的窗口中选择“系统设置”

(2)选择窗口左侧栏内的“传输文件设置”项,可以按照右侧d出的相应面板修改传输文件的设置。

(3)选中“当别人给我传文件时,使用断点续传机制”复选框,同时可以选择cache(断点续传文件缓冲文件)目录位置。

(4)选中下面的“当接收大文件(>10mb)中断时,提醒我是否保留在cache目录”,这样可以在传送失败时,能够接着续传。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8090311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存