使用 ESP8266 TCP 客户端永久保持 TCP 连接

Keep TCP connection on permanently with ESP8266 TCP client

我用的是带SMING框架的wifi芯片ESP8266

我能够作为客户端与远程服务器建立 TCP 连接。客户端发起连接服务器的代码很简单

tcpClient.connect(SERVER_HOST, SERVER_PORT);

不幸的是,连接将在空闲一段时间后关闭。我想永久保持此连接打开。如何做到这一点?

您实际上需要监视连接状态并在连接失败时重新连接。您在其之上的协议将需要跟踪另一方实际收到的内容并重新传输。

在任何无线网络中,您的 link 可能会因某种原因出现故障,如果您需要保持长期连接,则需要将其置于 TCP 本身之上的一层。

TCP 将继续连接,只要双方都允许(none 已断开连接)并且 link 上没有错误,在这种情况下发送保活实际上可能会导致断开连接,因为 keepalive 可能会一次失败,但 link 可以恢复,如果你没有 keepalive,link 会一直保持。