2014-11-12 2 views
0

У меня есть клиент, пытающийся загрузить несколько файлов на FTP-сервер в пассивном режиме.
Клиент отправляет команду PASV, и сервер отвечает соответствующим ip и портом.
Возможно ли отправить несколько файлов на это одно соединение для передачи данных? или клиенту необходимо отправить команду PASV и получить новый порт для каждого файла?- соединение данных ftp только для одного файла?

ответ

0

Поскольку единственным индикатором конца файла является закрытие соединения, и поскольку после закрытия соединения вы не можете передавать больше данных, вы не сможете передавать более одного файла, используя одно и то же соединение для передачи данных.

Но, возможно, вы попытались задать другой вопрос, то есть, если есть возможность иметь несколько передач данных (и, следовательно, несколько соединений с данными) после одной команды PASV? Я не вижу ничего в RFC959, который бы прямо предотвратил это и повторно использовал один и тот же целевой порт на сервере. И поскольку доступ будет осуществляться из разных исходных портов на клиенте, это также не должно создавать проблем с состояниями TCP-соединения. Но на практике вы, вероятно, увидите проблемы, потому что если вы попытаетесь использовать это со стороны клиента, потому что многие серверы создают слушателя только для одного подключения к данным. Поэтому вам лучше предшествовать каждой передаче данных с помощью новой команды PASV, как это делают существующие клиенты.

Смежные вопросы