NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

两台计算机用labview datasocket 进行数据通信,通信中断后,如何自动恢复

两台计算机用labview datasocket 进行数据通信,当网线拔掉后,通信中断,再插上网线后网络恢复,但数据通信不能自动恢复,如何解决
0 项奖励
1 条消息(共 2 条)
3,655 次查看

个人认为:

 

我用范例做了一下试验,datasocket应该有一个超时机制和网络检测机制,如果网络断开的时间很短,超时和网络检测还没来得及反应,那么通信会自动回复。如果网络断开时间很长,datasocket的相关vi肯定会报错。

 

datasocket本身不会支持自动恢复,就像tcp协议一样。之所以有些程序能够在通信中断后自动恢复,那是因为程序设计人员针对通信可能中断这种情况做了特殊处理。例如我们都熟悉的即时聊天软件——qq,当通信中断后,它经过一段时间发现网络中断,然后转为离线状态,当通信恢复后,它经过一段时间检测到网络正常,然后恢复到在线状态。

 

用datasocket设计通信中断后能够自动恢复的程序的时候,我认为思路也应该差不多。

首先,你的程序里面一定要有一个超时或者网络掉线检测机制,当发现网络出现问题后,屏蔽掉相应错误(不屏蔽的话程序弹出错误后肯定中断),给出一些提示信息,然后让程序跳转到一个重新连接状态,直道重新连接成功,再跳回到正常通信状态,同时检测功能继续运行。

0 项奖励
2 条消息(共 2 条)
3,480 次查看