Интерактивный Telnet
- Войдите на сайт для отправки комментариев
Чт, 05/12/2013 - 18:22
Вот стоит задача интерактивной работы с Telnet, нужно общатся с почтовым серваком и посылать запросы в зависимости от того что скажет сервак, как это лучше реализовать, делаю вызов функции
byte sendEmail() { if (client.connect(server, 25)) { Serial.println("connected"); } else { Serial.println("connection failed"); return 0; } сhar c = client.read(); Serial.print(c); }
Приблизительно вот так это выглядит, но в терминал возвражается только символ "ÿ"
возвражается только символ "ÿ"
ну добавляю
if (client.available()) {}
ничего не меняется, точнее вобще ничего не выплёвывает, хотя если соеденятся телнетом то при подключении текстовые данные сервак отдаётся
Ну так значит ничего нет.
хотя если соеденятся телнетом то при подключении текстовые данные сервак отдаётся
Ну так значит ничего нет.
хотя если соеденятся телнетом то при подключении текстовые данные сервак отдаётся
Ну когда я цепляюсь к серваку телнетом то после установления соеденения сервак отдаёт достаточно большой ответ о готовности работы, ну там тип сервера и т.д. , то есть после соеденения в буфере что-то должно остатся
вот сделал так
в итоге в буфере тишина, хотя при запросе серверу: EHLO SERVERNAME он должен дать либо ошибку либо отдать нормальные данные.
http://arduino.ru/forum/programmirovanie/plata-uhf-rfid-reeder-dannye-po-wiegand#comment-49548
Спасибо за наводку, всё вышло, оказывается ардуино получает ответ значительно медленнее чем его видно через Telnet, увеличил ожидание и весь вывод получился в терминале, ктож знал что нужно аж до 6сек повышать ожидание, я уж думал код кривой, осталось разобратся как его парсить быстрее и обработчик почты будет готов
Можно организовать "побайтное" ожидание.
Примерно так:
Спасибо, попрорбую, сейчас столкнулся с новой проблемой, поиск совпадений в ответах сервера, нужно найти в строчку нужное число, еапример 200, вот уж недумал что ньюансы будут на кадом шагу поджидать.
это не нюансы, это обычное программирование. Попробуйте изучить мировой опыт по теме https://www.google.com/search?q=arduino+smtp+ethernet
Нюансы начнуться, когда
* сервер попросит аутентифицироваться нетривиальным способом
* вы захотите получить отправленное вами же сообщение, которое почему-то считается всеми посредниками нвтуральным Спамом
Может кто-то будет задаваться таким же вопросом, вот хорошая ссылка http://jeremylaurenson.wordpress.com/2012/05/28/ardueno-smtp-code/ , пароль и логин кодируются в любом on-line base64 конвертере, например тут http://base64.ru/
Авторизация PLAIN лично у меня не заработала, перла нету , а онлайн несмог сгенерировать строчку которая бы работала, поэтому логонился через AUTH LOGIN, то есть вот так