Официальный сайт компании Arduino по адресу arduino.cc
удалить файл на ftp сервере (на удаленном компьютере) при помощи Arduino с ethernet shield
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пнд, 27/07/2020 - 02:12
Добрый день уважаемые форумчане !!! прошу помощи у гуру !!!
Есть компьютер с белым айпишником. На нем есть FTP сервер. Хотелось бы чтобы ардуино, периодически заходило бы на этот FTP сервер и проверяло есть ли там файл 1.txt, а затем после того как обнаруживала этот файл включала реле и через какое то время Удаляла этот файл.
Ранее уважаемый sadman41 дал мне пример кода для записи файла на фтп серверю
https://playground.arduino.cc/Code/FTP/
Уважаемые форумчане дайте пожалуйста пример как можно при помощи ардуино удалить файл на удаленном ftp сервере ???
Заранее огромное спасибо !!!
еще дополнение - проблема в том что в примере показано как записать файл с фтп сервера на сд карту ethernet shield и обратно с сд карты ethernet shield на удаленный фтп сервер.
Но проблема у меня такая что постоянно отваливается сд карта ... какое то время вся система работает нормально, но в один момент перестает работать сд карта.
то есть прошу дать пример кода чтобы арудино именно проверила есть ли на фтп сервере файл 1.txt, а затем после того как обнаруживала этот файл включала реле и через какое то время Удаляла этот файл. (ТО ЕСТЬ МИНУЯ ОБРАЩЕНИЕ К СД КАРТЕ)
ВОТ БОЛЕЕ ТОЧНЫЙ ВОПРОС
-------------------------------------------------------------------------------------------------------------------------------------
Уважаемые форумчане дайте пожалуйста пример как можно при помощи ардуино можно проверить существование файла на удаленном фтп сервере, а затем удалить файл на ftp сервере ??? (без обращения к сд карте)
-------------------------------------------------------------------------------------------------------------------------------------
Заранее огромное спасибо !!!
А сам разобраться и научиться не хочешь?
А сам разобраться и научиться не хочешь?
- немого все же разбираюсь. Код подправить могу конечно.
ну а где можно прочитать про это ? - желательно на русском языке. если можно скиньте код тоже плиз ...
client.println(F(
"DELE file.txt"
));
- вы можете более подробно расписать ? как я понимаю должно быть
client.println(F(
"DELETE file.txt"
))
К сожалению, нельзя :-(
- Я не понимаю вас. Я на не высоком уровне понимания. И чего ? все с чего-то начинали. Хочу разобраться.
А сам разобраться и научиться не хочешь?
- хочу. Изучал материал по видеурокам Алекса Гайвера на ютубе и еще есть американца AmperkaRu. Ну ткните в верном направлении. Типа кури книгу ххх раздел ххх. Зачем тролить то ?
Заранее огромное спасибо за помощь !!!
А в гугл можно ткнуть ? ) В данном конкретном случае лучше начать с соединения и управления ftp сервером через telnet, пробуете ручками что там как и потом тоже самое посылаете с ардуины.
Так и задавай вопросы на https://community.alexgyver.ru здесь-то чего?
А хочешь учиться - бери книги и с самого начала учись, а не по видео на порнхабе.
А в гугл можно ткнуть ? )
- я вот не могу правильно сформировать вопрос - я пишу запись или удаление файла на ftp сервере - все вылазит создание фтп на самом ардуино ... можете подсказать хоть какой запрос то?
А хочешь учиться - бери книги и с самого начала учись, а не по видео на порнхабе.
- круто, можешь похвалить себя какой ты остряк ... ты книги то посоветовать можешь ? где бы этот вопрос разбирался ...
Из примера по ссылке в первопосте можно понять, что суть управления FTP сервером в пассивном режиме есть подача простых текстовых команд. Т.е. достаточно сделать коннект на хост, авторизоваться и начать пулять туда строки. Список команд я тоже давал: https://en.m.wikipedia.org/wiki/List_of_FTP_commands
Инспиритус же прямо показал какую команду необходимо использовать и как.
То 16-летним назовут, то инспиритусом, прям негодую :)
Сорри, затупил.
не будет такой книги т.к. фтп сервер вопрос совершенно отдельный от ардуины, вот с ним и разберитесь для начала
не знаю что вы гуглите, но следует гуглить что то типа ftp server telnet example
Добрый день.
- ну как отдельный ? методы то пишуться именно на языке ардуино урезанном c++ как я понял. В делфи на паскале мне написать такой код 5 минут. На ардуино не знаю вот и спрашиваю.
- ftp server telnet example искал - не нашел или не понял честно говоря для арудино.
------------
https://ru.wikipedia.org/wiki/FTP
FTP работает на прикладном уровне модели OSI и используется для передачи файлов с помощью TCP/IP. Для этого должен быть запущен FTP-сервер, ожидающий входящих запросов. Компьютер-клиент может связаться с сервером по порту 21. Это соединение (поток управления) остаётся открытым на время сессии.
Второе соединение (поток данных), может быть открыт как сервером из порта 20 к порту соответствующего клиента (активный режим), или же клиентом из любого порта к порту соответствующего сервера (пассивный режим), что необходимо для передачи файла данных.
Поток управления используется для работы с сессией — например, обмен между клиентом и сервером командами и паролями с помощью telnet-подобного протокола. Например, «RETR имя файла» передаст указанный файл от сервера клиенту.
------------
Вам для удаления файла нужен поток данных? Полагаю, что не очень. Нужна лишь текстовая команда, засланная в порт 21.
В чем разница то ? Абсолютно один хрен на чем такое писать, ну на асме разве по другому. У вас через телнет получилось удалить файл на фтп ?
Не надо пытаться методом тыка решать задачу. Нужно четко понимать что передавать серверу для удаления файла и каким из методов это передается. Можно еще взять и почитать описание методов тех обьектов, 5 минут займет (это про .remove).
Поток управления используется для работы с сессией — например, обмен между клиентом и сервером командами и паролями с помощью telnet-подобного протокола. Например, «RETR имя файла» передаст указанный файл от сервера клиенту.
Вам для удаления файла нужен поток данных? Полагаю, что не очень. Нужна лишь текстовая команда, засланная в порт 21.
- говорю же прописывал client.println(F("DELE file.txt")) - результат борода, при этом смотрю на сервере через файл зила сервер интерфейс - реально ардуинка конектится к серверу. В отладчике ардуинки (монитор порта) - вижу Serial.println(F("Data connected")) из вашего примера https://playground.arduino.cc/Code/FTP/. Файл на сервере лежит точно, лежит в корне папки фтп. В чем может быть проблема ?
- Где ??? дайте ссылку. Если вы про это https://en.m.wikipedia.org/wiki/List_of_FTP_commands - я видел и читал. но как писал выше авторизуюсь на сервере отправляю команду client.println(F("DELE file.txt")) - результат борода.
Мне бы развернутый пример, с описанием ... а так все говорят учи матчасть а ссылку на статью или книгу где бы были примеры взаимодействия ардино с удаленным фтп сервером не дают ...
Может быть что угодно. от глупой ошибки в коде, до настроек прав доступа. Смотрите логи ФТП сервера.
Непробиваемый товарищ ) "без ардуино получается ?" "мне не надо без ардуино, с ардуино не получается" )
Пример сразу дали, как строки серверу отправлять там есть.
"Халявщик обыкновенный" - "ничего читать и пробовать не буду. дайте готовый код"
- говорю же прописывал client.println(F("DELE file.txt")) - результат борода
какая "борода". покажите?
Андрей, на любую команду ФТП-сервер дает ответ, выполнено или нет, код ошибки и тд. Вы в своем коде лупите команды. не проверяя ответов. Вам же не зря советуют почитать описание ФТП протокола. И еще очень полезный совет дали - подключится к ФТП вручную и дать эту же команду. Вы что, никогда в жизни в консоли ФТП не работали?
Ну и из области "поворчать" - я абсолютно не вижу у вас желание решать проблему, все ждете, что кто-то сделает это за вас. Неужели самому не стыдно, что не можете разобраться в подобной ерунде? По мне так это показатель - если при такой куче документации и вы даже не пытаетесь искать ответ - значит вы вообще не способны программировать. бросайте это дело