tcp客户端,socket掉线重连,比较标准的做法是怎样的??
比如设备运行tcp客户端,接在路由器下,重启路由器或者拔插网线,应用层检测到socket断开了,只要简单的重新建立socket连接就行。如果极端一点,路由器修改LAN端的网段,或者将设备不断电接到其它路由器下,设备就只能将网络重新初始化(不断电)获取新ip后才能重连。时间会比较长些。
socket重连比较常用的做法是怎样的呢?
直接重连几次不行就来几次网络重新初始化重连?
我的做法是: 持续一段时间未收到数据,就关闭连接,然后重新连接. 我这边是3分钟连不上就重新DHCP一次,第二种情况很容易越到,之前遇到过有个比较坑的路由器半夜12点固定重启丢IP。。。,或者路由器访问不到自己的服务端也会重启。。。,不初始化设备就永远挂了 初音之恋 发表于 2021-11-24 17:20
我这边是3分钟连不上就重新DHCP一次,第二种情况很容易越到,之前遇到过有个比较坑的路由器半夜12点固定重 ...
我也是因为路由器定时重启才想起这事情,一般情况下重启之后设备的IP还是有效的,但是有时会无效,必须重新获取IP 用的paho-mqtt库,板子自己家用的,感觉算强壮了,路由器不管断电掉线什么的,板子重连不成,大不了重启,总能跟外面mqtt服务器重连成功。
没想昨天到发现新问题,要是光猫重启,板子就算自动重启也没法重连mqtt服务器。
重连的时间间隔也设置为2,30秒,避免被服务器屏蔽。
彻底断电几十秒以上,再重连倒是一次能连上。 68336016 发表于 2022-4-14 15:30
用的paho-mqtt库,板子自己家用的,感觉算强壮了,路由器不管断电掉线什么的,板子重连不成,大不了重启, ...
(引用自5楼)
看不懂,板子断电和自动重启有区别吗?会不会重启没有复位PHY? youkebing 发表于 2022-4-14 16:18
看不懂,板子断电和自动重启有区别吗?会不会重启没有复位PHY?
(引用自6楼)
ch579,带网络的M0芯片,自带phy。
用起来但是容易,但是有问题就比较难,不像stm32那样多人用
页:
[1]