關(guān)于TCP鏈接重連過程

是這樣,我用CH32V208做了一個(gè)BLE網(wǎng)關(guān)。

為了保持網(wǎng)絡(luò)連接穩(wěn)定,以及在網(wǎng)關(guān)的參數(shù)變動(dòng)的時(shí)候網(wǎng)關(guān)會(huì)自動(dòng)修改。

我設(shè)計(jì)了如下過程:


1、開啟DHCP。

2、DHCP完成后執(zhí)行DNS解析,獲取服務(wù)器IP

3、創(chuàng)建TCP連接,進(jìn)行MQTT通信。

4、判斷WCHNET_SocketSend函數(shù)返回與發(fā)送數(shù)據(jù)的長(zhǎng)度是否一致,不一致重發(fā),發(fā)送次數(shù)達(dá)到限制后觸發(fā)重連。

5、為了防止沖突,重連前完成:WCHNET_DHCPStop、WCHNET_DNSStop、WCHNET_SocketClose(?TCP_CLOSE_ABANDON 模式 )

6、重復(fù)到步驟1


并且,WCHNET_HandleSockInt中:

檢測(cè)到SINT_STAT_TIM_OUT,我會(huì)執(zhí)行一遍WCHNET_SocketClose后執(zhí)行WCHNET_SocketCreat和WCHNET_SocketConnect。


檢測(cè)到SINT_STAT_DISCONNECT后執(zhí)行WCHNET_SocketClose



目前遇到的問題是:

重連時(shí) ( 此時(shí)已經(jīng)確認(rèn)執(zhí)行過?WCHNET_DHCPStop、WCHNET_DNSStop、WCHNET_SocketClose )

DHCP能完成重新獲取IP

DNS 時(shí)提示0x1E? (?Operation in progress )? ????????????

WCHNET_SocketCreat ????????時(shí)提示0x1D????(?Already connected )

WCHNET_SocketConnect????時(shí)提示0x17?????(?Connection closed )


是不是我執(zhí)行過程有問題?

您好,需要注意Transport_Open()會(huì)創(chuàng)建socket并建立連接,您可以看一下您手動(dòng)創(chuàng)建與建立連接的操作是否與該函數(shù)的操作重復(fù),如果是其他原因?qū)е驴赏ㄟ^微信溝通解決。wechat:19951759326image.png


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频