Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 96

Получить/передать данные с/на ftp сервер

30.11.2012, 22:39. Показов 1328. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите в каком режиме лучше устанавливать соединение с сервером ftp для получения или передачи данных.
И смогу ли я так вывести список данных?
C
1
2
3
4
5
6
7
8
9
sprintf(tosend, "PORT 127,0,0,1,9,93\n");
bytes_send = send(sock, tosend, strlen(tosend), 0);
bytes_read = recv(sock, buffer, MAXBUF, 0);
printf("%s", buffer);
 
sprintf(tosend, "LIST\n");
bytes_send = send(sock, tosend, strlen(tosend), 0);
bytes_read = read(sock, buffer, MAXBUF);
printf("%s", buffer);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2012, 22:39
Ответы с готовыми решениями:

Как передать текстовый файл на сервер через FTP?
Здравствуйте! Пишу одну программку, смысл в том, что данные введённые пользователем записываются в файл, далее этот файл нужно передать на...

Можно ли с помощью ExcelVB передать файл прямо на ftp-сервер?
и если да, то как произвести авторизацию?

Передать данные на сервер
Создал проект Windows Forms, будет клиентом. Можно пример как по нажатии кнопки отправить данные с textBox на сервер?

9
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
01.12.2012, 10:12
Цитата Сообщение от vac9 Посмотреть сообщение
Подскажите в каком режиме лучше устанавливать соединение с сервером ftp для получения или передачи данных.
Спросите как-нибудь иначе, с такой формулировкой вопроса выбора активный/пассивный просто нет.
Цитата Сообщение от vac9 Посмотреть сообщение
И смогу ли я так вывести список данных?
Нет, кроме 425 bla-bla Вы вряд ли что-то получите.
0
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 96
01.12.2012, 15:41  [ТС]
Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
Спросите как-нибудь иначе, с такой формулировкой вопроса выбора активный/пассивный просто нет.
Нет, кроме 425 bla-bla Вы вряд ли что-то получите.
мне нужно подключиться к серверу фтп, запросить список файлов и скачать нужный
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
01.12.2012, 18:46
Ну возьмите какую-нибудь библиотеку (например curl) и вперед.
0
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 96
01.12.2012, 22:08  [ТС]
может кто нибудь показать , как открыть второе соединение для передачи данных
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
02.12.2012, 10:56
Например так:
1. создать сокет
2. сделать getsockname на control-chanel сокет.
3. сделать bind() на полученный в пункте 2 адрес.
4а. сделать connect к адрес_сервера:control-chanel_порт - 1;
4б. Если перед этим была команда PASV, то соединяться по полученному адресу.
Или например так:
1. Тем или иным способом получить какой-либо локальный адрес хоста (подойдет пункт 2 предыдущего варианта).
2. Выбрать порт (например 0 - пусть выбирает система)
3. сделать bind() + listen() (если на шаге 2 порт был 0 - getsockname())
4. По control-chanel отправить команду PORT
5. взвести таймер, ждать в accept()
6. (опционально)Проверить, что принятое соединение пришло с верного адреса/порта
Еще раз: возьмите библиотеку, с огромной долей вероятности она это сделает лучше чем Вы ручками.
0
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 96
02.12.2012, 11:02  [ТС]
а вот так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sprintf(tosend, "PORT 127,0,0,1,9,93\n"); 
bytes_send = send(sock, tosend, strlen(tosend), 0); 
bytes_read = recv(sock, buffer, MAXBUF, 0);
 printf("%s", buffer); bzero(tosend, MAXBUF); 
host = gethostbyname(hostname); 
bzero(&dest, sizeof(dest)); 
dest.sin_family = AF_INET; dest.sin_port = htons((9*256+93)); 
dest.sin_addr.s_addr = *(long*)(host->h_addr);
 if (connect(sock2, &dest, sizeof(dest)) != 0)
 {
 printf("Connection fail!\n");
 } 
sprintf(tosend, "LIST\n"); 
bytes_send = send(sock2, tosend, strlen(tosend), 0);
 bytes_read = recv(sock2, buffer, MAXBUF, 0);
 printf("%s", buffer);
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
02.12.2012, 11:10
Вы уж простите, но PORT + connect() в коде клиента = маразм.
0
1 / 1 / 1
Регистрация: 03.03.2011
Сообщений: 96
02.12.2012, 11:28  [ТС]
Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
Вы уж простите, но PORT + connect() в коде клиента = маразм.
можете тогда показать какой нибудь пример, но без библиотек типа curl
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
02.12.2012, 11:52
Как это сделать я Вам уже рассказал, а код длиннее десятка строк я за красивые глаза обычно не пишу, уж извините.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2012, 11:52
Помогаю со студенческими работами здесь

Передать на сервер данные Base64
Привет всем! У меня возник вопрос, с которым я никогда не сталкивался... нужно передать на сервер файл в таком формате:...

С ftp-сервера получить данные в ListView
Здравствуйте ребята ... при подключение ftp через IdFTP все данных получаю в ListBox1 Но это (отображение файлов в Папки) как то не...

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

Как получить данные из FTP клиента FileZilla?
Столкнулся с не решённой задачей по восcтановлению пароля FTP из клиента FileZilla. В сохранённом виде, в настройках соединения (Менеджер...

Поднять ftp-сервер на виртуалке и получить доступ с live-версии через браузер
Нужна помощь. Есть две виртуалки fedora 23 live и fedora 23 server. задача поднять ftp сервер на серверной виртуалке и получить доступ с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru