将tcp/IP点对点长连接改为udp广播,修改原因:tcp/IP长连接会对本地服务器带来压力
udp广播分为广播、组播、单播。
现在分析采用何种通信方式
控制没有采用指定的协议方式,比如http协议,仅是发送数据包所以接受到数据后都会做解析包处理。如果采用广播的形式,势必得在包中指定设备编号,控制器会一直处理接收的数据,所以这种方式舍弃。
控制器中没有业务上的不一样,所以也不采用组播的形式
最后只能采用单播的形式,指定IP指定端口,这样控制器处理的数据比较少,而且也不用在数据包中对控制器进行编号。本地服务器只需轮训指定IP指定端口发送即可
所以采用udp的单播方式
同步问题
由于应用场合问题,得考虑画面是否同步的原因,影响同步的因素有以下几方面:
1、控制器从接收到数据到处理显示出来所用时间
里面有个10ms的延时,这个延时是否可以减短有待考究。预计本部分时间20ms最多了
2、服务器轮寻发送数据包的时间
这个时间没有了解过,不过对于电脑来说,10ms也是最长时间了。
所以加起来也就30ms的延时,要求刷新率为30帧的话,已经足够了。
同步分为两种同步,
1、相邻控制器之间的时间差
从上面分析的,这部分顶多不到1ms,所以不用考虑
2、首尾之间的时间差
从上面考虑,这个时间是量的问题,每个控制器从接收到数据到驱动显示,几乎时间相差不大,本地服务器轮询发送数据包时间估计不到1ms