实现 FTP 客户端上传下载功能
下面让我们通过一个例子来对 FTP 客户端有一个深入的了解。本文实现的 FTP 客户端有下列功能:
- 客户端和 FTP 服务器建立 Socket 连接。
- 向服务器发送 USER、PASS 命令登录 FTP 服务器。
- 使用 PASV 命令(被动)得到服务器监听的端口号,建立数据连接。
- 使用 RETR/STOR 命令下载/上传文件。
- 在下载完毕后断开数据连接并发送 QUIT 命令退出。
本例中使用的 FTP 服务器为 filezilla。在整个交互的过程中,控制连接始终处于连接的状态,数据连接在每传输一个文件时先打开,后关闭。
1.客户端和 FTP 服务器建立 Socket 连接
当客户端与服务器建立连接后,服务器会返回 220 的响应码和一些欢迎信息。
图 1. 客户端连接到服务器端
代码:客户端连接到 FTP 服务器,接收欢