0

我正在使用带有 SMING 框架的 wifi 芯片 ESP8266。

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

tcpClient.connect(SERVER_HOST, SERVER_PORT);

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

4

1 回答 1

1

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

在任何无线网络中,您的链接都可能由于某种原因而断开,如果您需要保持长期连接,则需要将其置于 TCP 本身之上的一层。

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

于 2016-04-10T05:15:54.753 回答