先让我们来看看一个典型的FTP任务是怎样完成的吧! -------------------------------------------------------------------------------- $ ftp ftp.server.com Connected to ftp.server.com 220 server.com FTP server ready. Name (server:john): john 331 Password required for john. Password: 230 User john logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for /bin/ls. drwxr-xr-x 5 john users 3072 Nov 2 11:03 . drwxr-xr-x 88 root root 2048 Nov 1 23:26 .. drwxr--r-- 2 john users 1024 Oct 5 13:26 bin drwx--x--x 8 john users 1024 Nov 2 10:59 public_html drwxr--r-- 4 john users 1024 Nov 2 11:26 tmp -rw-r--r-- 1 john users 2941465 Oct 9 17:21 data.zip 226 Transfer complete. ftp> bin 200 Type set to I. ftp> get data.zip local: data.zip remote: data.zip 200 PORT command successful. 150 Opening BINARY mode data connection for data.zip(2941465 bytes). 226 Transfer complete. ftp> bye 221 Goodbye. -------------------------------------------------------------------------------- 你可以看到,进程明显被分为几段:联接(与FTP服务器建立联接)、验证(确定用户是否有权力进入系统)、传输(这里包括列目录,上传或下载文件)、取消联接。