第1页共8页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共8页FTP概述文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用
FTP的目标是提高文件的共享性和可靠高效地传送数据
在传输文件时,FTP客户端程序先与服务器建立连接,然后向服务器发送命令
服务器收到命令后给予响应,并执行命令
FTP协议与操作系统无关,任何操作系统上的程序只要符合FTP协议,就可以相互传输数据
本文主要基于LINUX平台,对FTP客户端的实现原理进行详尽的解释并阐述如何使用C语言编写一个简单的FTP客户端
回页首FTP协议相比其他协议,如HTTP协议,FTP协议要复杂一些
与一般的C/S应用不同点在于一般的C/S应用程序一般只会建立一个Socket连接,这个连接同时处理服务器端和客户端的连接命令和数据传输
而FTP协议中将命令与数据分开传送的方法提高了效率
FTP使用2个端口,一个数据端口和一个命令端口(也叫做控制端口)
这两个端口一般是21(命令端口)和20(数据端口)
控制Socket用来传送命令,数据Socket是用于传送数据
每一个FTP命令发送之后,FTP服务器都会返回一个字符串,其中包括一个响应代码和一些说明信息
其中的返回码主要是用于判断命令是否被成功执行了
命令端口一般来说,客户端有一个Socket用来连接FTP服务器的相关端口,它负责FTP命令的发送和接收返回的响应信息
一些操作如“登录”、“改变目录”、“删除文件”,依靠这个连接发送命令就可完成
数据端口对于有数据传输的操作,主要是显示目录列表,上传、下载文件,我们需要依靠另一个Socket来完成
如果使用被动模式,通常服务器端会返回一个端口号
客户端需要用另开一个Socket来连接这个端口,然后我们可根据操作来发送命令,数据会通过新开的一个端口传输
如果使用主动模式,通常