如何通过 ESP8266 创建 TCP 服务器?

how create TCP server by ESP8266?

我想在 Arduino 中通过 ESP8266 创建一个简单的 Wifi TCP 服务器 IDE。但是我有一个大问题:当我从客户端发送一个字符或字符串时,我无法在服务器上接收到它。

事实上,我将 esp8266 连接到我的电脑上,我想在电脑终端上看到来自客户端的发送字符。 我的发送方是 android! 的套接字协议应用程序,我在服务器端编写的完整代码是:

WiFiServer server(8888);
void setup() 
{
  initHardware();
  setupWiFi();
  server.begin();
}
void loop() 
{
  WiFiClient client = server.available();
  if (client) {
    if (client.available() > 0) {
      char c = client.read();
      Serial.write(c);
    }
  }
}
void setupWiFi()
{
  WiFi.mode(WIFI_AP);
  WiFi.softAP("RControl", WiFiAPPSK);
}

void initHardware()
{
  Serial.begin(115200);
}

双方的波特率都设置为 115200。

在循环中,您将在建立删除 WiFiClient 对象后立即关闭客户端连接。

为了保持连接打开,您可以像这样修改循环:

WiFiClient client;
void loop() 
{
    if (!client.connected()) {
        // try to connect to a new client
        client = server.available();
    } else {
        // read data from the connected client
        if (client.available() > 0) {
            Serial.write(client.read());
        }
    }
}

当客户端未连接时,它会尝试连接一个客户端,当客户端已连接时,它会读取传入数据。