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

Sad*_*deq 5 arduino tcpserver esp8266

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

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

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);
}
Run Code Online (Sandbox Code Playgroud)

两边的波特率都设置为115200。

mpr*_*net 4

在循环中,您将在建立客户端连接后立即关闭客户端连接并删除对象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());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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