使用 Socket 通信实现 FTP 客户端程序文件传输协议〔FTP〕作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用
FTP 的目标是提高文件的共享性和可靠高效地传送数据
在传输文件时,FTP 客户端程序先与服务器建立连接,然后向服务器发送命令
服务器收到命令后给予响应,并执行命令
FTP 协议与操作系统无关,任何操作系统上的程序只要符合 FTP 协议,就能够相互传输数据
本文要紧基于 LINUX 平台,对 FTP 客户端的实现原理进行详尽的说明并阐述如何使用 C 语言编写一个简单的 FTP 客户端
回页首FTP 协议相比其他协议,如 协议,FTP 协议要复杂一些
与一样的 C/S 应用不同点在于一样的 C/S 应用程序一样只会建立一个 Socket 连接,那个连接同时处理服务器端和客户端的连接命令和数据传输
而 FTP 协议中将命令与数据分开传送的方法提高了效率
FTP 使用 2 个端口,一个数据端口和一个命令端口〔也叫做操纵端口〕
这两个端口一样是 21 〔命令端口〕和 20 〔数据端口〕
操纵 Socket 用来传送命令,数据 Socket 是用于传送数据
每一个 FTP 命令发送之后,FTP 服务器都会返回一个字符串,其中包括一个响应代码和一些说明信息
其中的返回码要紧是用于判定命令是否被成功执行了
命令端口一样来说,客户端有一个 Socket 用来连接 FTP 服务器的相关端口,它负责 FTP 命令的发送和接收返回的响应信息
一些操作如〝登录〞、〝改变名目〞、〝删除文件〞,依靠那个连接发送命令就可完成
数据端口关于有数据传输的操作,要紧是显示名目列表,上传、下载文件,我们需要依靠另一个 Socket 来完成
假如使用被动模式,通常服务器端会返回一个端口号
客户端需要用另开一个 Socket 来连接那个端口,然后我们可依照操作来发送命令,数据会通过新开的