一、TCP斷鏈續(xù)連示例 TCP(傳輸控制協(xié)議)主要用于確保數(shù)據(jù)在網(wǎng)絡(luò)中可靠傳輸。當(dāng)TCP連接因網(wǎng)絡(luò)問題、設(shè)備故障等原因斷開時,需要重新建立連接以繼續(xù)數(shù)據(jù)傳輸。 本文將通過Air201具體示例解析,教你使用LuatOS腳本語言實現(xiàn)TCP斷鏈續(xù)連。 1.1 本教程實現(xiàn)的功能定義: 1)斷鏈: TCP連接斷開,可能由于網(wǎng)絡(luò)不穩(wěn)定、設(shè)備故障等。 2)續(xù)連: 重新建立TCP連接,通常通過“三次握手”,過程如下: 客戶端請求連接; 服務(wù)器響應(yīng)并同意連接; 客戶端確認(rèn)連接建立。 1.2 核心腳本代碼詳解 1.2.1 串口初始化 本文示例:串口使用MAIN_UART(uart1)。 1.2.2 數(shù)據(jù)接收回調(diào):搭建響應(yīng)橋梁 這里使用uart.rx接口,和以zbuff的方式存儲從uart1外部串口收到的數(shù)據(jù)--收取數(shù)據(jù)會觸發(fā)回調(diào)。 注意:這里的"receive"是固定值不要修改。 1.2.3 TCP網(wǎng)絡(luò)配置:鋪就數(shù)據(jù)通道 注意: 如需要認(rèn)證,SSL填寫為true;不需要則填寫為false。 1.2.4 TCP至串口透傳:數(shù)據(jù)無縫流轉(zhuǎn) 1.2.5 串口至TCP反透傳:信息雙向傳遞 1.2.6 斷鏈續(xù)連 1.3 完整代碼及運行結(jié)果1.3.1 完整代碼 1.3.2 運行結(jié)果 使用TCP/UDP web測試工具進(jìn)行測試,LuaTools工具打印日志,可看到服務(wù)器斷開后,重新連接成功。 如下圖所示: 二、常見問題 sys.waitUntil("IP_READY") -- 等待聯(lián)網(wǎng)成功 新入手的朋友可能看到此函數(shù)不太理解: 在整個腳本里面沒有發(fā)布此事件sys.publish("IP_READY"),為什么后面還聯(lián)網(wǎng)成功了? 此處解釋一下: 在模組上電之后,固件內(nèi)部聯(lián)網(wǎng)成功會自動發(fā)布: sys.publish("IP_READY") 今天的內(nèi)容就分享到這里了~ |