|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.05.2012, 11:59 | #1 |
Регистрация: 08.12.2011
Сообщений: 3
|
ftp клиент
надо написать ftp клиент, вот кое-что нашел в интернете, с помощью этого я могу подключится к ftp серверу и залогиниться на нем (на картинке это можно увидеть), вопрос в том как переходить по каталогам и скачивать/закачивать файлы. на сервере же обычно есть стандартные команды:
ABOR — Прервать передачу файла CDUP — Сменить директорию на вышестоящую. CWD — Сменить директорию. DELE — Удалить файл (DELE filename). EPSV — Войти в расширенный пассивный режим. Применяется вместо PASV. HELP — Выводит список команд принимаемых сервером. LIST — Возвращает список файлов директории. Список передается через соединение данных. ну и много других отсюда еще один вопрос как передать эти команды на сервер чтобы они работали?? возможно я в чем-то ошибаюсь тогда поправьте меня можно выкладывать куски кода или указать что и где почитать. Код:
|
22.05.2012, 12:08 | #2 |
Пользователь
Регистрация: 21.05.2012
Сообщений: 24
|
У вас есть реализованные функции send и readserv, добавьте посылку соответствующих команд по аналогии с логином
Для начала советую проделать необходимые команды с командной строки и постепенно их добавлять в приложение.
Правильная Россия - нам нужны программисты
http://dimaovsyannikov.livejournal.com http://www.programmersforum.ru/showpost.php?p=1047533&postcount=1 |
22.05.2012, 18:49 | #3 |
Регистрация: 08.12.2011
Сообщений: 3
|
therightrussia2, да и вправду через send можно отправлять команды, не догадался я. спасибо
но теперь другая проблема я допустим запрашиваю список файлов с помошью команды LIST но он ничего не выводит, точнее пишет что считал но не выводит этого списка, при этом если подключится к ftp с помощью стандартной терминальной команды "ftp" и запросить список с помошью ls или nlist то нормально выводится список файлов. это можно увидеть на картинке. в коде изменял только main вот он: Код:
|
23.05.2012, 09:55 | #4 |
Пользователь
Регистрация: 21.05.2012
Сообщений: 24
|
Ну если вы всерьез хотите взяться за написание такого сетевого приложения то первым делом сделайте везде при работе с сетевыми функциями проверку возвращаемых значений.
Без этого понять что происходит невозможно как один из вариантов из-за того что в функции readServ установлен таймаут на операцию всего 1 секунда то она могла просто не успеть считать данные. После каждого вызова отсылки или приема данных выводите код возврата которые вы получаете от сокетных функций send и recv
Правильная Россия - нам нужны программисты
http://dimaovsyannikov.livejournal.com http://www.programmersforum.ru/showpost.php?p=1047533&postcount=1 |
23.05.2012, 13:31 | #5 |
Регистрация: 08.12.2011
Сообщений: 3
|
therightrussia2 поставил проверку всех send и recv, нигде нет ошибки.
да и сам ftp сервер возвращает трехзначные числа и комментарии к ним, и он то же не говорит о какой-либо ошибке вот что происходит при моей программе: Код:
Код:
150 Opening ASCII mode data connection for /bin/ls. 226 Transfer complete. 268 bytes transferred. 0,26 KB/sec. но в моей программе теряется список файлов, который и должен быть между этими двумя строками. и да, таймаут увеличил до 5 секунд но ничего не изменилось |
23.05.2012, 15:38 | #6 |
Пользователь
Регистрация: 21.05.2012
Сообщений: 24
|
у сделайте команду "узнать текущий каталог" я почти уверен что они будут разные
Правильная Россия - нам нужны программисты
http://dimaovsyannikov.livejournal.com http://www.programmersforum.ru/showpost.php?p=1047533&postcount=1 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
FTP клиент | Andr | Работа с сетью в Delphi | 7 | 18.02.2016 12:22 |
Активный FTP клиент | Alexandee67 | Работа с сетью в Delphi | 6 | 13.01.2011 23:25 |
ftp клиент | blacknike | PHP | 2 | 14.11.2010 16:14 |
ftp клиент на winsock | sergoss | Работа с сетью в Delphi | 1 | 07.05.2009 19:07 |