Внедрение FTP-сервера / клиента в C

Меня просят о назначении, которое требует реализации протокола FTP. Я ознакомился с документацией, приведенной на RFC959.

Я запутался с парой деталей реализации

1) Если файл необходимо передать, какую функцию можно использовать. Можно ли использовать простую функцию send() для нетекстового файла.

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

надеюсь получить ответ в ближайшее время.

2 ответа

FTP передает файл через обычное TCP-соединение, и вы можете передавать любые файлы с ним. Нет разницы между текстовыми файлами и двоичными файлами, все они представляют собой просто последовательность байтов.

Для передачи файла достаточно открыть соединение и вызвать write функционировать много раз, пока не будет передан весь файл (проверьте возвращаемое значение write чтобы узнать, сколько байтов было отправлено).

Остальная часть протокола FTP основана на тексте и отправляется на другой порт.

Существует хорошее руководство по использованию FTP напрямую через netcat, которое может быть полезно для понимания того, как все работает. Понимание активного и пассивного режима также может быть полезным, так как вы собираетесь реализовать хотя бы один из них.

Кроме того, используйте wireshark для отслеживания потока TCP и просмотра данных, которые вы отправляете / получаете, это может быть очень полезно при отладке.

Реализация протокола не даст вам файловую структуру. Протокол здесь для определения некоторых правил и состояний.

Часть разработки / разработки зависит от вас. Вам просто нужно соблюдать протокол FTP, чтобы добиться нормализации и совместимости с другим клиентом / сервером.

С наилучшими пожеланиями

Другие вопросы по тегам