使用LabVIEW中的TCP/IP和UDP协议
前言
互联网络协议(IP),用户数据报协议(UDP)和传输控制协议(TCP)是网络通信的基本的工具。TCP与IP的名称来自于一组最著名的因特网协议中的两个--传输控制协议和互联网络协议。
你能使用TCP/IP来进行单一网络或者互连网络间的通信。单独的网络会被大的地理距离分隔。TCP/IP把数据从一个子网网络或者因特网连接的计算机发送到另一个上。因为TCP/IP 在大多数计算机上是可用的,它能在多样化的系统中间传送信息。
LabVIEW和TCP/IP
你能在所有平台上的LabVIEW中使用TCP/IP。LabVIEW包含了TCP和UDP程序还有能让你建立客户端或者服务器程序的功能。
IP
IP执行低层次的计算机间的数据传送。在组成部分里的IP数据包称为数据报。一个数据报包含表明来源和目的地地址的数据和报头字。IP为通过网络或者因特网把数据发送到指定的目的地的数据报确定正确的路径。
IP协议并不能保证发送。事实上,如果数据报在传输中被复制,IP可能多次传送一个单独的数据报。所以,程序很少用IP而是用TCP或者UDP代替。
UDP
UDP在计算机进程中提供简单而低层次的通信。进程通过把数据报发送到一个目的地计算机或者端口进行通信。一个端口是你发送数据的位置。IP处理计算机对计算机的发送。在数据报到达目的地计算机后,UDP把数据报移动到其目的端口。如果目的端口不是开放的,UDP 将删除数据报。UDP将发生IP的同样的发送问题。
应用程序的UDP的可靠性不强。例如,一项应用程序能经常把大量信息的数据传送到目的地而丢失少量的数据是肯定的。
在LabVIEW中使用UDP协议
因为UDP不是一个TCP似的一个以连接为基础的协议,在你发送或者收到数据之前,你不需要和目的地建立一种连接。相反,当你每发送一个数据报时,由你指定数据目的地。操
作系统不会报告传输差错
使用UDP打开功能在一个端口上打开一个UDP插口。同时打开的UDP端口的数量仍依赖于操作系统。UDP的打开的功能返回到网络连接时唯一识别UDP套接字。使用这种连接在子VI程序中就是靠这个套接字。
用UDP编写功能发送数据到目的地,然后使用UDP阅读功能阅读那个数据。每写一个操作要求一个目的地地址和端口。每阅读一个操作包含来源地址和端口。UDP保存你所发送的每一个命令所指定的数据报字节。
在理论上,你能发送任何大小的数据报。然而,你最好不使用UDP来发送大的数据报,因为它不像TCP一样可靠。
当你在一个端口上结束所有通信时,使用UDP结束功能去释放系统资源。
UDP多路广播
你能使用UDP的功能来与一个单独的客户端通信或者通过广播对于所有局域网上的计算机通信。如果你想要传送成倍增加具体的计算机信息,你必须通过客户端列表构建UDP功能反复执行。因为LabVIEW能把数据的作为一个单独的拷贝发送到每个客户端并且保存对收到数据感兴趣的客户端列表,所以运用这种技术建立完全相同的网络交换。
使用多路广播可以在网络上的进行单个的发送端和多倍的客户端之间的通信而不需要保存客户列表或者要求发送端把数据多重拷贝后发送给每个客户端。为了通过多路广播收到数据广播,所有客户端必须加入一个多路广播组。而发送端不需要加入该组。发送端只需规定一个多路广播的IP地址来定义这个多路广播组。多路广播的IP地址范围在224.0.0.0到239.255.255.255中。当一个客户端想要加入一个多路广播组时,它只需预定这个组的多路广播的IP地址。在客户端预定到一个多路广播组之后,客户端收到从多路广播的IP 地址发送的数据。
对于LabVIEW中的多路广播,使用UDP多路广播的打开程序有能力读、写或者读和写UDP 数据。规定TTL为写数据,多路广播地址为读数据,多路广播端口号为读写数据。默认TTL 是1,这意味着LabVIEW仅仅把数据报发送到本地的网络上。当一个发送方收到一个多路广播数据报时,它消耗数据报的生存时间。如果TTL大于1,发送方把数据报转发到其它数据报。下面的表格说明了当你规定一个TTL的值时,一个多路广播数据报的运行。
参阅在LabVIEW\例子\comm\UDP.llb中的UDP多路广播接受方程序和UDP多路广播发送方程序VI中使用UDP多路广播的例程。
TCP
TCP保证在网络中的可靠的通信,按顺序发送而没有差错,损失或者重发。TCP直到收到一个确认才转发。
系统要求
在使用TCP/IP之前,确认你有必需的要求,这变化依赖于你使用的平台。
(Windows和UNIX系统)TCP/IP。你不需要使用第三种产品连接使用TCP/IP。如果你的网络适当地被构成,LabVIEW没有要求附加的设置。
(Mac OS系统) LabVIEW网络要求打开传送,包括Mac OS 7.5和更新的版本。
在LabVIEW中使用TCP
TCP是一个以连接为基础的协议,这意味着站点必须在传送数据之前建立一种连接。TCP许可多重、同时的连接。
你可以通过等待一种输入的连接或者通过积极地寻求一种与指定的地址连接建立连接。在建立TCP连接时,你必须指定一个地址和该地址的端口。端口范围在0到65,535点之间。UNIX系统为特殊的应用程序保留端口数少于1,024。在一个给定的地址中不同的端口能识别不同的服务。
使用TCP的打开连接功能来与一个指定地址进行积极的连接。如果连接成功,功能返回网络连接的返回数唯一识别那个连接。使用这种连接refnum来访问子VI程序。
你能使用如下技术来等输入连接:
用TCP听程序创建立一个听者并且在一个指定的端口等待一种可接受的TCP连接。如果连接成功,VI程序返回连接数,地址和远程TCP客户端口。
TCP创建听者功创建一个听者然后用TCP的听者功能上等待的一个听者接受新的连接。
在听者功能上的TCP等待返回你所发送的功能和返回数的同样的听者ID。当你结束等候新的连接时,用TCP关闭连接功能区关闭一个听者。你不能对一个听者进行读写。
用第二种技术的优势是你能使用TCP关闭连接功能来取消听操作,这在你想要为了一种连接听而没有超时,但是你想要取消当另一个条件变真时的听时是很有用的。你能在任何时间关闭听程序。
当你建立一种连接时,用TCP读功能和TCP写功能能在远程应用中队数据进行读写。
用TCP关闭连接功能区关闭远程连接。如果没被读的仍保留着而关闭连接,你可能失去数据。当关闭连接时,在你的计算机上使用较高层次协议。在连接被关闭后,你不能再读写它。
TCP和UDP之间的区别
在你想要可靠的数据传输时,TCP是最好的协议。UDP是高性能的无需连接的协议,但是它不保证可靠性。
建立TCP客户端
注意:请参考最近的版本LabVIEW帮助功能对这些指令和功能的细节描述。
完成如下步骤使用TCP功能建立一个TCP顾客。
1.用TCP的打开连接功能来打开一个服务器的连接。你必须规定服务器的因特网地址和服
务器的端口。
地址在网络上识别计算机。远程端口在服务器使用听的计算机上识别一个通信通道。当你建立一个TCP服务器时,你要规定你想要服务器为通信使用的端口。
2.用TCP的写功能把信息发送到服务器上。
3.用TCP的读功能来读发自服务器的信息。你必须规定你想读的字节数。
4.用TCP的关闭功能来关闭与服务器的连接。
请参阅labview\examples\comm\TCP.llb中对单一数据客户端的TCP例程。
超时和差错
当你设计一种网络应用时,应细心考虑失败是如何发生的。例如,如果服务器被毁,确定如何使每个客户VI程序掌控它。
一种解决方式是确保每个客户VI程序有超时功能。如果发生没能在一定量的时间之后生产结果,客户端继续执行。在继续时,客户端能试图重建连接或者报告出错。如果必要的话,客户端VI程序能关闭应用程序。
建立TCP服务器
注意:请参考最近的版本LabVIEW帮助功能对这些指令和功能的细节描述。
完全如下步骤用TCP功能来建立一个TCP服务器。
1.使用TCP听程序等待连接。你必须规定端口。这个端口必须是客户端试图访问的同一个
端口。
2.如果连接被建立,用TCP读功能从接受到信息的端口读信息。
3.用TCP写功能返回结果。数据必须是一种客户端能接受的形式。
4.用TCP关连接功能来关闭连接。
请参阅labview\examples\comm\TCP.llb中对单一数据客户端的TCP例程。
TCP和UDP例子
请参阅labview\examples\comm\TCP.llb和labview\examples\comm\UDP.llb中用TCP和UDP的VI程序和功能。tcpip协议中基于tcp协议的应用程序
Application Note 160 Using LabVIEW™ with TCP/IP and UDP
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论