• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Подключение нескольких клиентов к TCP серверу на ESP

Dev

New member
Здравствуйте. Столкнулся с такой проблемой: не удаётся считать сообщения при подключении второго клиента к серверу( именно к серверу, а не к точке доступа), при этом сообщения от первого клиента также перестают проходить в момент подключения второго и модуль становится кирпичом до следующей перезагрузки.
Код сервера:
PHP:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
WiFiServer server(80);

void startAP()
{
  delay(100);
  WiFi.mode(WIFI_STA);
  WiFi.softAP("ROBOTECH","robotech");
  delay(500);
  server.begin();
 // Serial.println("Server started");
}
void setup() {
  Serial.begin(115200);
  startAP();
}

void loop() 
{
  WiFiClient client=server.available();
  if(client){//Если клиент подключён
 // Serial.println("Client connected");
  while(client.connected()){ 
    if(Serial.available()>0){// Если принимаем по UART
      char TX = Serial.read(); // Считываем байт( если нужно строку то Serial.ReadStringUntil("\n")
      client.print(TX); // Шлём по TCP то что приняли по UART
    }
    if(client.available()>0){ //Если принимаем по TCP
      char RX = client.read(); // Считываем сообщение клиента
      Serial.print(RX);// Шлём в UART
      //client.print(RX);
    }
   }
   //Serial.println("Diskonnected");
   }
}
Судя по коду из WiFiServer.cpp, сокет создаётся только при создании сервера:
PHP:
void WiFiServer::begin()
{
    uint8_t _sock = WiFiClass::getSocket();
    if (_sock != NO_SOCKET_AVAIL)
    {
        ServerDrv::startServer(_port, _sock);
        WiFiClass::_server_port[_sock] = _port;
        WiFiClass::_state[_sock] = _sock;
    }
}
Если кто-нибудь знает как это решить, пожалуйста помогите, буду очень признателен ^_^.
 

Dev

New member
Всё работает, с 3 клиентами точно
http://esp8266.ru/forum/threads/prostaja-peredacha-dannyx.1037/
тут есть примерчик с клиентом и сервером, где сервер это точка доступа
Примеры помечены как "Скетчи работают, дальше , думаю, разберётесь)"
А ещё прочитайте срочное добавление, что располагается ниже и будет счастье )) Небольшое но счастье)
вот)
 
Сверху Снизу