首页 理论教育LabVIEW2012中文版虚拟仪器UDP通信

LabVIEW2012中文版虚拟仪器UDP通信

【摘要】:UDP用于执行计算机各进程间简单、低层的通信。图11-68 UDP子选板使用打开UDP函数,在端口上打开一个UDP套接字。UDP会保留为发送命令而指定的数据报的字节数。然而,鉴于UDP可靠性不如TCP,通常不会通过UDP发送大型数据报。例11-6:UDP通信实例。该例子使用UDP实现双机通信。图11-69和图11-70所示是实现UDP通信发送端的前面板和程序框图。UDP函数通过广播与单个客户端或子网上的所有计算机进行通信。

UDP用于执行计算机各进程间简单、低层的通信。将数据报发送到目的计算机或端口即完成了进程间的通信。端口是发送数据的出入口。IP用于处理计算机到计算机的数据传输。当数据报到达目的计算机后,UDP将数据报移动到其目的端口。如果目的端口未打开,UDP将放弃该数据报。

对传输可靠性要求不高的程序可使用UDP。例如,程序可能十分频繁地传输有信息价值数据,以至于遗失少量数据段也不成问题。

UDP不是基于连接的协议,如TCP,因此无须在发送或接收数据前先建立与目的地址的连接。但是,需要在发送每个数据报前指定数据的目的地址。操作系统不报告传输错误。

UDP函数在函数选板>>“数据通信”>>“协议”>>“UDP”子选板中,如图11-68所示。

978-7-111-40983-0-Chapter11-75.jpg

图11-68 UDP子选板

使用打开UDP函数,在端口上打开一个UDP套接字。可同时打开的UDP端口数量取决于操作系统。“打开UDP”函数用于返回唯一指定UDP套接字的网络连接句柄。该连接句柄可在以后的VI调用中引用这个套接字。

写入UDP函数用于将数据发送到一个目的地址,读取UDP函数用于读取该数据。每个写操作需要一个目的地址和端口。每个读操作包含一个源地址和端口。UDP会保留为发送命令而指定的数据报的字节数。

理论上,数据报可以任意大小。然而,鉴于UDP可靠性不如TCP,通常不会通过UDP发送大型数据报。

当端口上所有的通信完毕,可使用关闭UDP函数以释放系统资源。

例11-6:UDP通信实例。

该例子使用UDP实现双机通信。图11-69和图11-70所示是实现UDP通信发送端的前面板和程序框图。图11-71和图11-72所示是实现UDP通信接收端的前面板和程序框图。(www.chuimin.cn)

UDP函数通过广播与单个客户端(单点传送)或子网上的所有计算机进行通信。如需与多个特定的计算机通信,则必须配置UDP函数,使其在一组客户端之间循环。LabVIEW向每个客户端发送一份数据,同时需维护一组对接受数据感兴趣的客户端,这样便造成了双倍的网络报文量。

多点传送用于网上单个发送方与多个客户端之间的通信,无须发送方维护一组客户端或向每个客户端发送多份数据。如要从一个多点传送的发送方接收数据广播,所有的客户端需要加入一个多点传送组。但发送方无须为发送数据而加入这个组。发送方指定一个已定义多点传送组的多点传送IP地址。多点传送IP地址的范围是224.0.0.0到239.255.255.255。若客户机想要加入一个多点传送组,它便接受了该组的多点传送IP地址。一旦接受多点传送组的传送地址,客户端便会收到发送至该多电传送IP地址的数据。

978-7-111-40983-0-Chapter11-76.jpg

图11-69 UDP发送端前面板

978-7-111-40983-0-Chapter11-77.jpg

图11-70 UDP发送端程序框图

978-7-111-40983-0-Chapter11-78.jpg

图11-71 UDP接收端前面板

978-7-111-40983-0-Chapter11-79.jpg

图11-72 UDP接收端程序框图