Пример класса ESP8266 ASyncTCP
Я новичок в программировании ESP на Arduino, так как раньше я занимался разработкой на eLua. В Lua были некоторые проблемы с памятью, поэтому я решил перейти на Arduino.
Посмотрев несколько примеров, я нашел библиотеку под названием AsyncTCP и был очень рад, потому что она предоставляет обратные вызовы для событий так же, как Lua. Но я был очень разочарован, когда не нашел примера асинхронного TCP-сервера. Вместо этого есть сервер AsyncWeb, но я не хочу использовать HTTP-сервер: мне нужен простой telnet-сервер. У кого-нибудь есть рабочий пример?
@mansoor, 👍1
2 ответа
Если в библиотеке нет примеров, вам придется обойтись тем примером, который у вас есть :(
Если вы думаете о том, что делает веб-сервер, то на самом деле это просто прославленный сервер Telnet без надлежащей защиты. Когда веб-сервер запускается, он создает ожидающий сокет на порту 80, вам нужен порт ?? (слишком давно). Он сидит там, ожидая текстовых сообщений от клиентов, что вы и хотите сделать. Каждый раз, когда он получает сообщение, он отправляет его обработчику.
Я не знаю, насколько вы опытный программист, но вы должны быть в состоянии почерпнуть достаточно информации из кода веб-сервера, чтобы написать свой собственный telnet-сервер. Однако, если вы новичок в Arduino, вам может быть гораздо лучше начать с синхронного приложения.
Еще один подход — найти источник для сервера telnet и посмотреть, сможете ли вы перенести его на ESP.
Есть примеры в библиотеке ESP8266
https://github.com/me-no-dev/ESPAsyncTCP/tree/master /примеры
- Несколько клиентских серверов через Wi-Fi
- ESP8266 TCP-соединение WiFiClient проблема
- ESP8266 отправляет TCP HEX-пакет из 4 символов
- Как передать переменные в пользовательские функции обратного вызова
- Неблокирующая библиотека MQTT
- Веб-сервер ESP8266 недоступен через 2 минуты после сброса
- ESP8266 — Как получить многоадресный пакет UDP?
- Статический IP-адрес для esp8266 на основе шлюза