14.4.1 Использование команд в текстовом диалоге
Многие пользователи предпочитают графический интерфейс, доступный на настольных системах, но текстовый интерфейс позволяет лучше понять внутренние процессы протокола FTP.
Нижеприведенный текстовый диалог начинается с вывода справки. Существующие команды имеют синонимы, например
Используя команды
В представленный ниже диалог включен вывод отладочной информации, чтобы дать некоторое представление о работе протокола:
■ Строки, начинающиеся на -->, показывают сообщения, посланные локальным хостом по управляющему соединению.
■ Строки, начинающиеся с числа, соответствуют сообщениям, посланным удаленным сервером для отчета о результате выполнения команды.
plum-feit > ftp
ftp> help
Commands may be abbreviated. Commands are:
! cr macdef proxy send
$ delete mdelete sendport status
account debug mdir put struct
append dir mget pwd sunique
ascii disconnect mkdir quit tenex
bell form mls quote trace
binary get mode recv type
bye glob mput remotehelp user
case hash nmap rename verbose
cd help ntrans reset ?
cdup led open rmdir
close ls prompt runique
ftp> debug
Debugging on (debug = 1).
ftp> open tigger.jvnc.net
Connected to tigger.jvnc.net.
220 tigger.jvnc.net FTP server (Version wu-2.4(1) Fri Apr 15 13:54:36 EDT 1994)
ready.
Для обращения к личным файлам введены реальные идентификатор пользователя (userid) и пароль.
Name (tigger.jvnc.net:sfeit): feit
--> USER feit
331 Password required for feit.
Password:
--> PASS abcd1234
230 User feit logged in.
Команда
ftp> status
Connected to tigger.jvnc.net.
No proxy connection.
Mode: stream; Type: ascii; Form: non-print; Structure: file
Verbose: on; Bell: off; Prompting: on; Globbing: on
Store unique: off; Receive unique: off
Case: off; CR stripping: on
Ntrans: off
Nmap: off
Hash mark printing: off; Use of PORT cmds: on
Затем запрашивается список файлов каталога. Такой список может быть очень большим, поэтому FTP посылает его по соединению для данных:
ftp> dir
FTP необходим порт для пересылки данных. Клиент посылает команду
--> PORT 128,36,4,22,10,53
200 PORT command successful.
Сервер откроет соединение по указанному адресу socket. Команда
--> LIST
Далее сервер открывает соединение с объявленным клиентом портом:
150 Opening ASCII mode data connection for /bin/ls.
total 531
-rw-r-r- 1 feit tigers 0 Oct 24 1994 .addressbook
-rw-r-r- 1 feit tigers 2808 Sep 23 1994 .article
-rw-r-r- 1 feit tigers 397 Mar 14 1993 .cshrc
. . .
-rw-r-r- 1 feit tigers 3113 Jul 31 13:29 subnets
-rw-r-r- 1 feit tigers 59901 Jun 5 17:48 typescript
226 Transfer complete.
2239 bytes received in 0.31 seconds (7 Kbytes/s)
Сразу после пересылки списка файлов соединение данных будет закрыто. Затем мы можем получить файл.
ftp> get subnets
Клиент указывает новый адрес socket для переноса файла. Отметим, что на сей раз используется клиентский порт 2614 (10,54).
--> PORT 128,36,4,22,10,54
200 PORT command successful.
--> RETR subnets
150 Opening ASCII mode data connection for subnets (3113 bytes).
226 Transfer complete.
По завершении пересылки файла соединение для данных закрывается.