| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > получить файл по ftp |
| Автор: slater 10.8.2010, 07:34 |
| подскажите как мне получить файл, я написал пока программу которая коннектится по IP и на 21 порт, и получаю приветствие от ftp сервера. подскажите каким образом программно мне получить дальше файл(хотя бы расскажите алгоритм), если я знаю путь к нему и его имя. сервер анонимный очень надеюсь на вас |
| Автор: boostcoder 10.8.2010, 08:20 | ||
как-то так:
|
| Автор: azesmcar 10.8.2010, 08:21 |
надеяться не на нас надо а на http://www.ietf.org/rfc/rfc0959.txt. |
| Автор: slater 10.8.2010, 08:39 |
| нда))) |
| Автор: MAKCim 10.8.2010, 08:43 |
действительно, нужно смотреть rfc |
| Автор: slater 10.8.2010, 08:47 |
| а библиотеку libcurl?! вот такой пример нашел http://curl.haxx.se/libcurl/c/ftpget.html единственно, при компиляции он не находит .тих библиотек, говорит что не может найти ссылки на функции подскажите как компилить правильно я делал компиляцию gcc -o ftpget ftpget.c |
| Автор: azesmcar 10.8.2010, 08:55 | ||
а причем тут библиотека libcurl? Вопрос был о протоколе FTP, пытаться реализовать протокол не читая RFC не лучшая идея.
как-то так |
| Автор: slater 10.8.2010, 08:56 |
| ясно, спасибо ребята, просто ищу попроще способ получить файл по ftp |
| Автор: azesmcar 10.8.2010, 08:57 | ||
проще через command-line. |
| Автор: proc_maker 17.8.2010, 12:44 |
| Привет! Я когдато тоже бороздил RFC и сделал примерно так: PASV - работаем в пассивном режиме сервер нам дает строку с данными для подключения соединения данных примерно так: 227 Entering Passive Mode (127,0,0,1,129,178). Парсим гдето так: int a,b,c,d, p1, p2; sscanf(ОтветСервера, "(%i,%i,%i,%i,%i,%i", &a, &b, &c, &d, &p1, &p2); sprintf(ip, "%d.%d.%d.%d", a, b, c, d); port=(p1<<8) | p2; Подключаемся туда Теперь у нас 2 коннекта - первый-управляющий, второй-поток данных В контрольное соединение говорим "RETR /path/path/filename" Проверяем ответ сервера - если нет ошибок - начинаем читать данные из соединения потока данных. |
| Автор: slater 19.8.2010, 09:13 |
| proc_maker, спасибо большое! |