From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW中的基本TCP/IP通信

概览

本文介绍了TCP/IP通信的基础知识。阅读本文需要具备一定的LabVIEW相关知识。如果您对LabVIEW不太了解,请先参阅LabVIEW教程,更好地理解本文。

说明

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

TCP/IP通信提供简单的用户界面,在降低复杂度的同时确保了网络通信的可靠性。关于TCP/IP通信工作原理的更多信息,请参考下文链接的“LabVIEW在TCP/IP和UDP中的应用”。关于TCP的技术细节,请参考下文链接的TCP规范。

使用函数»数据通信»协议»TCP选板上的TCP/IP函数,在LabVIEW中实现TCP通信。与DAQ、仪器和文件I/O通信一样,该过程涉及打开连接、读取和写入信息,最后关闭连接。

对于大多数I/O通信,处理器总是发起与磁盘驱动服务器、外部仪器服务器或DAQ板卡服务器的连接的客户端。通过TCP/IP连接,计算机可作为客户端或服务器。以下程序框图中的客户端应用程序通过“TCP打开连接”发起与远程服务器的连接。服务器(又称伺服机)侦听远程连接并进行适当响应。


LabVIEW用户可开发用于TCP/IP通信的自定义应用程序。程序员同时负责开发客户端和服务器。关于通过LabVIEW创建TCP客户端的更多信息,请参考下文链接的“LabVIEW在TCP/IP和UDP中的应用”。

因为任何人都可发起与服务器的连接,所以您可能需要服务器访问控制。以下程序框图显示服务器如何使用“TCP侦听”VI的远程地址输出值来确定远程客户端是否具有访问服务器的权限。





开发通信应用
多数应用程序不只是写入和读取单个值。通信是一个涉及协议的持续过程。例如,假设客户端将以下4条命令以8位整数的形式发送至服务器:
1 =获取数据并确认
2 =发送数据
3 =获得状态
4 =关闭连接

在以下程序框图中,While循环包裹住了VI的其余部分。如此一来,VI就可处理多个顺序连接,而不必在每个连接关闭后重新启动。VI无法处理多个同步连接。外部的条件结构判断是否发生了有效连接。若无,则不作反应。若发生有效连接,VI将进入While循环,从TCP/IP端口读取一个字节。该字节包含来自客户端的命令1~4。若在读取超时时间内未收到命令,则内部条件结构的默认分支会向内部While循环的继续接线端发送TRUE值,以保持连接处于活动状态。




以下程序框图显示了内部条件语句的其他4个分支。每个分支处理一种服务器发送的特定命令。每个分支都向继续接线端发送信息,决定是否继续循环。需要注意的是,“退出”分支总是返回FALSE值。离开循环后,服务器关闭与客户端的连接。


 
 


这种类型的服务器架构可助您开发灵活的服务器,用于更加复杂的网络通信过程。您开发的协议可能比前文中的范例更加复杂。

Was this information helpful?

Yes

No