CH579工作在DHCP模式,通过MQTT连接外界服务器,网络存在各种异常情况导致MQTT掉线,CH579如何重连比较可靠呢?
重连之前CH57xNET_SocketClose关闭原先Socket,参数用TCP_CLOSE_RST\TCP_CLOSE_ABANDON\TCP_CLOSE_NORMAL哪一个比较好?
是否需要关闭DHCP然后重新打开呢?CH57xNET_DHCPStop,CH57xNET_DHCPStart
关闭DHCP再打开之前,是否需要跟程序开始一样,对网络重新初始化一次呢?
不知道怎样做显得优雅标准一些,什么时候只需要简单的关闭socket重新连接,什么时候需要重启DHCP,什么时候需要对网络库重新初始化,
CH57xNET_SocketClose(SocketId, TCP_CLOSE_RST); CH57xNET_DHCPStop(); GetMacAddr(MACAddr); CH57xNET_LibInit(IPAddr, GWIPAddr, IPMask, MACAddr); /* 库初始化 */ /* 检查错误 */ NVIC_EnableIRQ(ETH_IRQn); while(CH57xInf.PHYStat < 2) { DelayMs(50); } osDelay(500); CH57xNET_DHCPStart(CH57xNET_DHCPCallBack);
热门产品 :
CH641: PD及无线充电专用MCU