Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用带有 SMING 框架的 wifi 芯片 ESP8266。
我能够作为客户端与远程服务器建立 TCP 连接。启动客户端到服务器的连接的代码很简单。
tcpClient.connect(SERVER_HOST, SERVER_PORT);
不幸的是,空闲一段时间后连接将关闭。我想永远保持这个连接永远打开。如何才能做到这一点?
您实际上需要监视连接状态并在失败时重新连接。您的协议需要跟踪对方实际收到的内容并重新传输。
在任何无线网络中,您的链接都可能由于某种原因而断开,如果您需要保持长期连接,则需要将其置于 TCP 本身之上的一层。
只要双方都允许,TCP 将继续连接(它们都没有断开连接)并且链路上没有错误,在这种情况下,发送 keepalive 实际上可能会导致断开连接,因为 keepalive 可能会同时失败,但链路可以恢复,如果你没有keepalive,链接会一直保持不变。