一个工作线程是串口连接,循环读取数据,另一个工作线程是tcp或udp(根据配置)连接服务器获取数据。
1.如何在串口断开或被拔掉的时候捕获到特定的异常,然后就知道应该重新去连接,直到连接成功,再继续读取。
2.如何捕获tcp或udp被动断开或是网络中断或是服务器异常停止,这时就应该重新连接,直到连接成功,再继续读取数据。
两个线程都是在读取Modbus服务器,网络线程没法做心跳。
求解。
------解决思路----------------------
tcp是面向连接的协议,可以用try捕获异常
串口和udp是面向非连接的协议,断开了也没法知道
你只能程序自己判断超时了没有数据返回就算异常了
------解决思路----------------------
然后就知道应该重新去连接
本来就是面向非连接的协议,哪里有连接一说,跟谈不上重连的问题
------解决思路----------------------
反正你另外两种通信方式也没有异常可以捕获
完全都可以利用发送后有无接收去判断
如果异常断开,不管是执行write还是read都会抛异常的