• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Telnet- сервер(WIFI AP) и telnet - клиент(WIFI STA), проблема.

krepton85

Member
Суть задачи такова, есть 2 устройства на ESP8266, одно (далее 1) является точкой доступа WiFi и имеет telnet сервер, второе (далее 2) является Wi-Fi клиентом с telnet клиентом.
Устройство 1 будет иметь в будущем режим и точки доступа и клиента Wi-Fi, клиент конфигурируется через web интерфейс точки доступа (имя сети WiFi роутера и пароль, для клиента).
Устройство 2 должно подключится к точке доступа 1 устройства, а так же подключится своим telnet клиентом к telnet - серверу устройства 1 и по запросу получить у его настройки подключения к Wi-Fi роутеру, к которому уже успешно подключилось 1 - ое устройство своим wiFi клиентом.
Вся эта система "стопорится" у меня на подключении (не подключается по telnet) telnet - клиента (2), к telnet-серверу (1), разумеется после успешного подключения по wi-Fi 2 к 1. В чем дело не пойму, оба скетча проверены по отдельности и отлично работают - к устройству 1 подключаюсь смартфоном с telnet-клиентом (работает), устройство 2 также успешно подключается к telnet клиенту моего wifi роутера (только для теста). Так же проверял, если telnet сервер запустить на wi-fi клиенте устройства 1, которое подключается к той же wi Fi сети что и telnet клиент 2, то в такой связке это работает.
Ниже в архиве 2 скетча примера.
 

Вложения

Так же проверял, если telnet сервер запустить на wi-fi клиенте устройства 1, которое подключается к той же wi Fi сети что и telnet клиент 2, то в такой связке это работает.
раз так работают, то скорее всего проблема в IP при подключении клиента 8266 к точки доступа 8266, проверьте в одной подсети они находятся или нет
 

krepton85

Member
раз так работают, то скорее всего проблема в IP при подключении клиента 8266 к точки доступа 8266, проверьте в одной подсети они находятся или нет
Все в одной подсети, точка доступа (1) на esp8266 всегда имеет ip 192.168.4.1 (как изменить кстати не знаю) , удаленный клиент на esp8266 (2) получает ip 192.168.4.2.
А что если telnet клиент не может подключатся к ip адресам 192.168.4.1, к другим может, а этот в черном списке.:) Как сменить ip точки доступа на esp8266?
 
нету никаких черный списков, возможно одновременно поднимается и станция и клиент, соответственно 2 IP получается, проверьте вайфай на наличие дополнительной точки доступа от 2 есп

P.S. включите отладку и смотрите что на самом деле происходит
 

krepton85

Member
Ура, все заработало, действительно почему то не нравится ip 192.168.4.1 telnet клиенту - я сменил на точке доступа WIFI ip следующим образом:

IPAddress ip(192, 168, 1, 20);
IPAddress gateway(192, 168, 1, 20);
IPAddress subnet(255, 255, 255, 0);
WiFi.softAPConfig(ip, gateway, subnet);
WiFi.softAP(ssid_ap.c_str(), pass_ap.c_str());

ну и разумеется со стороны telnet клиента начал коннектится к 192.168.1.20:23. И о чудо, все заработало как надо. Но если прописать на точке доступа вновь:

IPAddress ip(192, 168, 4, 1);
IPAddress gateway(192, 168, 4, 1);
IPAddress subnet(255, 255, 255, 0);
WiFi.softAPConfig(ip, gateway, subnet);
WiFi.softAP(ssid_ap.c_str(), pass_ap.c_str());

То снова не канект к telnet. Что это было?:mad:
 
отладку включите на клиенте, скорее всего он работает в 2 режимах: клиента и точки доступа, со стороны клиента ип ....4.2, а со стороны точки у него .....4.1, соответственно он сам к себе пытается подключиться.
или
запрос к серверу идет до присвоения ип, а по умолчанию у него ....4.1, и снова сам к себе пытается подключиться.
 

krepton85

Member
отладку включите на клиенте, скорее всего он работает в 2 режимах: клиента и точки доступа, со стороны клиента ип ....4.2, а со стороны точки у него .....4.1, соответственно он сам к себе пытается подключиться.
или
запрос к серверу идет до присвоения ип, а по умолчанию у него ....4.1, и снова сам к себе пытается подключиться.
Здесь нет отладки, эта версия 2.3.0 в Ардуино IDE, отладка появилась позже. Действительно если запущен режим и клиента и точки доступа Wi-Fi на 1 то уже не подключается клиент telnet на 2. А еще ранее замечал что, если запустить telnet сервер и web сервер, то последний перестает работать. Странно как то тут все устроено, вроде порты разные, как они могут влиять друг на друга. Хотелось бы что бы все и сразу работало на одном esp8266: WiFi клиент, точка доступа, telnet сервер. Web сервер.
 
Здесь нет отладки, эта версия 2.3.0 в Ардуино IDE, отладка появилась позже
отладка еще в версии 2.1.0 упоминается, листать дальше и смотреть когда именно она появилась - бессмысленно.
упоминаний что в версии 2.3.0 она убрана - не найдено.
значит она есть.
если запустить telnet сервер и web сервер, то последний перестает работать.
а соединение телнет при этом разорвали? если контроллер занят телнетом, то вполне естественно что вэб запрос он не обработает.
запускал 2 разных веб сервера на разных портах - все работает, не думаю что телнету нужно больше ресурсов контроллера.
 
Сверху Снизу