FTP下载功能简介

news/2024/11/18 1:30:53/

基本的FTP下载功能

    • FTP工作机制
    • FTP工作方式
    • 常用指令和返回码
    • 基本实现流程

FTP概述

FTP 是File Transfer Protocol(文件传输协议)的英文简称,用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。

FTP工作机制

服务器支持文件的定位:ftp服务器需要支持文件的定位
两个socket通道:一个控制命令通道用于客户端向服务器发送指令和接收服务器的应答码;一个数据传输通道用于文件的上传下载
指令交互:协议规定的客户端向服务器发送的指令以及服务器端的返回码

FTP工作方式

主动方式(PORT方式):客户端首先和FTP的TCP 21 端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令:“我打开了xxx端口,你连接我吧!”在传送数据的时候,服务器端通过自己的TCP20端口连接至客户端的xxx端口发送数据

被动方式(PASV方式):被动方式在建立控制通道的时候和主动模式类似,但建立连接后发送的不是PORT命令,而是PASV命令:“我打开了xxx端口准备连接过来哦,你要不要打开一个端口让我连接过来啊?”FTP服务器收到请求后,在返回码中告知服务器随机打开的一个临时端口(1023至65535)如返回码为227 Entering Passive Mode (70,0,10,62,120,18),则服务器打开的端口号为120*256+18。客户端连接此端口,然后FTP服务器将通过这个端口进行数据的传送

常用指令和返回码

返回码服务器可以设置,因此不同的服务器略有差异,但是返回码最前面的数字意义是固定的
USER 发送登录服务器的用户名,正常返回“331 Password required”
PASS 发送登录密码,正常返回“230 User xxxxx logged in”
SYST 获取服务器的系统信息,正常返回“215 xxxxx”
MKD 在当前路径中创建目录。返回“257 “/xxx” created successfully”或“550 Directory already exists”
CWD

改变工作路径,正常返回“250 CWD command successful.”
PWD 显示当前的工作路径,正常返回“257 “/” is current directory”
SIZE + 服务器上文件名,获取服务器上需要下载的文件名大小,正常返回213 xxxx,xxxx为文件字节数
REST 指定文件开始下载的偏移量(字节数),正常返回“350 Restarting at xxxx”
TYPE 传输模式,mode 为 I 或 A ,返回“200 Type set to x”
PASV 进入被动模式,返回码如“227 Entering Passive Mode (222,217,19,250,212,162)”
RETR + 服务器上文件名,定位到服务器上指定文件,开始传输,正常返回码为“125 Data connection already open; Transfer starting.”

基本实现流程

USER ===>发送登入名
PASS ===>发送登入密码
PASV ===>进行被动方式连接
SIZE ===>获取服务器文件字节数,实际应用中常用语判断下载完成状态、进行断点续传等
REST ===>指定文件开始下载的偏移量,断点续传常用
TYPE ===>指定文件传输模式
RETR ===>定位文件,开始传输


http://www.ppmy.cn/news/559357.html

相关文章

风行播放器2014 v3.0.1 正式版

风行播放器2014 v3.0.1 正式版 软件大小:6.55MB 软件语言:简体中文 软件性质:常用软件 软件授权:官方版 更新时间:2014-05-13 应用平台:/Win8/Win7/WinXP 风行播放器2014是国内一款知名的在线影视播放…

ftp 浏览器直接下载

1.利用HTML <a> 标签 ftp://帐号:密码FTP网址 download:添加download属性后&#xff0c;无论a标签的href属性链接到一个网页、图片、文本等&#xff0c;download属性都会强制触发下载操作&#xff0c; 且自动命名文件为download属性。但是这个属性对浏览器有一定要求. …

风行博客

今时流行博客&#xff0c;我虽然早就知道&#xff0c;却是初次使用&#xff0c;而且至今还搞不懂何谓博客&#xff0c;恐怕又是个舶来品&#xff0c;呵呵&#xff0c;不管怎样&#xff0c;且理解为电子日记好了

通用Android电视 风行电视 免root禁用广告方法

环境&#xff1a;Android 电视、智能电视、机顶盒 问题&#xff1a;开机弹窗&#xff0c;无法安装软件 解决办法&#xff1a;ADB命令切换root后&#xff0c;再安装、禁用卸载软件 以风行电视举例&#xff1a; 1.下载ADB工具包 自行百度 或者点击下载 2.打开远程ADB调试&am…

彻底卸载风行播放器

请两天做测试的时候安装了风行播放器&#xff0c;当时用完就卸载了。结果今天发现一个进程(FSPlatform)竟然是风行播放器的&#xff0c;在控制面板中也没有看到卸载选项。 用金山的进程浏览器&#xff0c;查看该进程所属文件目录&#xff0c;发现不是我安装时指定的目录&#…

1分钟教你破解风行电视禁止安装应用!

相信很多风行电视的爱好者&#xff0c;最近也跟楼主一样&#xff0c;基本上陷入了无限的纠结之中&#xff0c;电视本身的质量就不说了&#xff0c;就那样&#xff0c;摆在那里&#xff0c;大家心里都有数。关键是&#xff0c;风行电视自带的系统&#xff0c;居然还禁止安装例如…

风行视频app v3.4.3.1

类型&#xff1a;影音播放 版本&#xff1a;v3.4.3.1 大小&#xff1a;24.4M 更新&#xff1a;2019/2/28 语言&#xff1a;简体 等级&#xff1a; 平台&#xff1a;安卓, 4.0以上 厂商&#xff1a;风行 下载地址&#xff1a; 风行视频app v3.4.3.1&#xff08;1&#xff09; 风…

C++ STL vector容器用法

文章目录 1 vector初始化方法2 vector容器迭代器3 data()函数4 emplace_back()和push_back()的区别5 insert()函数6 vector删除元素参考 1 vector初始化方法 方式1&#xff1a; std::vector<double> values;//创建空的vcetor values.reserve(20); //设置容器的内存分配…