LabVIEW在TCPIP和UDP中的应用

简介: LabVIEW在TCPIP和UDP中的应用

LabVIEW在TCPIP和UDP中的应用


网际协议(IP)、用户数据报协议(UDP)和传输控制协议(TCP)是网络通信的基本工具。TCP/IP这一名称来自于两个最著名的互联网协议集——传输控制协议和网际协议。


通过TCP/IP可实现单个网络内部或互相连通的网络间的通信。各个网络在地理距离上可以相距遥远。TCP/IP将数据在网络间或因特网上的计算机间传递。多数计算机普遍具有TCP/IP,因而信息能在各种系统上传输。


LabVIEW和TCP/IP


TCP/IP可用于所有平台上的LabVIEW。LabVIEW的TCP和UDP VI及函数可用于创建客户端VI和服务器VI。


IP


IP用于执行计算机间数据传输的低层服务。IP将数据打包为所谓的数据报。每个数据报包含了数据及一个指明源地址和目的地址的报头。IP决定了数据报在网络或因特网上传输的正确路径并将数据发送到指定的目的地址。


IP无法保证数据传输的成功。事实上,如果一个数据报在传输中被复制,IP便可能不止一次地传输该数据报。程序的传输多使用TCP或UDP协议而极少使用IP。


UDP


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


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


在LabVIEW中使用UDP


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


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


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


UDP数据报大小根据操作环境各有不同,但最大为65535字节。NI推荐使用UDP发送小于等于1 KB的数据报,从而尽量避免在传输中拆分和重组底层IP数据包,否则将大大增加数据包丢失的可能性。

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


UDP多点传送(Multicast)


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


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


如需在LabVIEW中进行多点传送,可用打开UDP多点传送VI打开能够进行读、写和UDP数据读、写的连接。需指定写数据的停留时间(TTL)、读数据的多点传送地址和读写数据的多点传送端口号。TTL默认值为1,即LabVIEW仅将数据发送至本地子网。路由器收到一个多点传送数据报后,将数据报的TTL值递减。如TTL大于1,路由器将数据报转发给其他路由器。以下表格为指定不同TTL参数后,多点传送数据报所发生的相应动作。


0     数据报停留在主机上。


1     数据报已发送到本地子网上接受同一IP地址的所有客户端。集线器/中继器和桥接器/交换机转发数据报。如TTL为1则路由器不转发数据报。


>1   数据报已发送且由路由器经TTL-1层转发。


请参考以下运用UDP多点传送的实例VI。


TCP


TCP能进行可靠的网络传输,可按顺序传输数据而毫无错误、遗失或重复。TCP会不断地传输数据报直至收到接收响应为止。


在LabVIEW中使用TCP


TCP是基于连接的协议,这意味着各传输点必须在数据传输前创建连接。数据传输在客户端和服务器之间进行。TCP允许多个同步连接。


注: 可在一个端口上创建最多1024个TCP连接。


可通过等待入局的连接或寻找具有指定地址的连接来创建连接。在创建TCP连接时,须指明其地址及该地址的端口。一个地址上不同的端口表示该地址上的不同服务。


通过打开TCP连接函数可主动创建一个具有特定地址和端口的连接。如连接成功,该函数将返回唯一识别该连接的网络连接句柄。这个连接句柄可在此后的VI调用中引用该连接。


以下方法用于等待一个入局的连接:


通过TCP侦听VI创建一个侦听器并等待一个位于指定端口已被接受的TCP连接。如连接成功,VI将返回一个连接句柄、连接地址以及远程TCP客户端的端口。


通过创建TCP侦听器函数创建一个侦听器,用“等待TCP侦听器”函数侦听和接受新连接。等待TCP侦听器函数返回连接至函数的侦听器ID。在结束等待新连接后,用关闭TCP连接函数关闭侦听器。侦听器无法进行读写操作。


上述做法的优点在于以“关闭TCP连接”函数取消侦听操作。在侦听连接时无须使用超时,而在另一个条件为真时侦听被取消。可随时关闭TCP侦听VI。


连接创建完毕后,可通过读取TCP数据函数及写入TCP数据函数对远程程序进行数据读写。


通过“关闭TCP连接”函数关闭与远程程序的连接。当连接关闭而仍有未读数据时,这些数据将遗失。可通过更高层次的协议来指明何时关闭连接。


TCP和UDP的选择


TCP是保证可靠数据传输的最佳协议。UDP协议无需创建连接且性能更优,但无法保证可靠的数据传输。


超时和错误


设计网络应用程序时,应仔细考虑故障发生时的情形。例如,服务器崩溃时客户端应如何处理。


解决方法之一是确保每个客户端VI具有超时设定。如一段时间后出现操作无效,客户端应继续执行。继续执行时,客户端可尝试重新建立连接或报告错误。如有必要,客户端VI可关闭程序。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目问题,可联系我们。

相关文章
|
5天前
|
网络协议 iOS开发 MacOS
LabVIEW在快速传输速率下丢失UDP数据包
LabVIEW在快速传输速率下丢失UDP数据包
11 0
|
5天前
|
网络协议 前端开发 JavaScript
TCP与UDP的区别:深入探索与应用案例
TCP与UDP的区别:深入探索与应用案例
28 2
|
10月前
|
网络协议 网络安全 网络架构
网络应用基础 TCPIP协议(NETBASE第四课)
网络应用基础 TCPIP协议(NETBASE第四课)
104 0
|
9月前
|
Linux 网络性能优化 C++
Linux UDP编程:深入探索无连接通信的实现与应用
在Linux操作系统中,UDP(用户数据报协议)是一种无连接的传输协议,适用于那些对数据传输延迟要求较高、但可靠性要求相对较低的场景。本文将深入探索Linux UDP编程的实现原理与应用,介绍UDP的工作机制、编程接口以及如何在Linux环境下编写UDP程序。
420 0
|
11月前
|
传感器 数据采集 人工智能
LabVIEW Arduino TCP/IP远程智能家居系统(项目篇—5)
智能家居是以家为平台,兼备建筑化于一体的高效、舒适、安全、便利的家居环境。它是采用家庭控制总线、互联网、通信、人工智能、单片机、传感器等一系列高新技术将家居设备控制,安防管理生活信息及资讯管理,家居互联网通信等与我们日常生活息息相关的常用生活元素全面并缜密地结合在一起,能够高度地提升我们的日常生活质量、便利性、安全性、舒适性和丰富性,是实现真正意义上的数字化、网络化、信息化和智能化家庭的一种全新的系统。它是依托于住宅这个平台,能够科学统筹管理家居生活的各个方面,让家居生活“"智慧"起来。这个管理过程的实现要依赖于计算机技术、网络技术、通信技术和综合布线技术等关键技术。
|
11月前
|
网络协议 测试技术 网络架构
TCP/IP IP地址概念与应用
TCP/IP IP地址概念与应用
126 0
|
网络协议 网络安全 C++
TCP/IP编程调用Windows的库实现UDP网络通信(代码实例)
UDP协议的实现: UDP协议是基于IP的。(本文采用Qt进行开发实现,且结合了C/C++混合编程的知识)
272 0
TCP/IP编程调用Windows的库实现UDP网络通信(代码实例)
|
监控 网络协议 安全
一文了解HTTP、HTTPS、TCP、UDP、Websocket(论点:概念、通信流程、异同点、应用领域)
一文了解HTTP、HTTPS、TCP、UDP、Websocket(论点:概念、通信流程、异同点、应用领域)
|
网络协议 Windows
TCP、UDP 和 HTTP 详解
TCP、UDP 和 HTTP 详解
|
网络协议 测试技术
第三章TCP/IPip地址概念与应用
一 什么是ip地址 IP地址是用来唯一标识互联网上计算机的逻辑地址,让电脑之间可以相互通信,每台连网计算机都依靠IP地址来互相区分,相互联系。 二 什么是域名 由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。
79 0