ФТП сервер, вопрос по реализации.

программы windows сервер Сети FTP

В общем, вопрос следующий:
в рфц написано, что ФТП сервер должен вести два параллельных соединения - одно для передачи команд, второе - для передачи файлов. Как получать первое соединение понятно. А вот как устанавливать второе - не совсем. Есть два варианта:
1) после того, как получили соединение для передачи команд ИЗ СЕРВЕРА пытаемся подключиться к клиенту и передать соответствующий файл
2) после того, как получили соединение для передачи команда ИЗ КЛИЕНТА пытаемся подключиться к серверу на другой порт и получить соответствующую информацию (тут кстати не совсем понятно, как идентифицировать нужного клиента из очереди accept() ов и к какому файлу какой accept() будет относиться).
Спасибо!

Примечание:
Сразу говорю: я студент. Так что реализация сервера простая на столько, на сколько это возможно :)

Примечание:
А если к ФТП серверу висит одновременно 1000000 запросов на передачу файлов, тогда портов не хватит же.
+ в рфц вроде как написано, что для управления - 20 порт, для передачи - 21 порт строго.

Примечание:
Вернее, 21 для управления, 20 для передачи :) Прошу прощения

Примечание:
Хм. Чем тогда эффективнее второй способ первого? По идее, при соответствующем количестве ресурсов, если сервер сам пытается соединиться с клиентом для передачи файла, он может передавать файлы одновременно бесконечному количеству клиентов. А во втором случае нам приходится ограничиться количеством доступных портов.

Примечание:
Ну, тут уж можно логически разделить сервера на несколько типов. Так, сервера с одним типом не будут требовать от клиента наличие внешнего айпи и поддержки соединения, а другие - будут.

Примечание:
Спасибо, вопрос исчерпан.
Ответы:
Поздравляю, вы открыли, что такое пассивный режим фтп.
А как идентифицировать - после управляющей команды сервер открывает один свой порт для передачи одного файла и сообщает по управляющему соединению клиенту, какой именно.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.