本文介绍了TCP/IP通信的基础知识。阅读本文需要具备一定的LabVIEW相关知识。如果您不熟悉LabVIEW,请先阅读LabVIEW教程,有助于理解本文。
网际协议(IP)、用户数据报协议(UDP)和传输控制协议(TCP)是网络通信的基本工具。TCP/IP这一名称来自于两个最著名的互联网协议集——传输控制协议和网际协议。通过TCP/IP可实现单个网络内部或互相连通的网络(互联网)间的通信。
TCP/IP通信提供了一个简单的用户接口,使复杂的网络通信简单明了。关于TCP/IP通信工作原理的更多信息,请参考LabVIEW帮助中的LabVIEW在TCP/IP和UDP中的应用。
在LabVIEW中使用函数»数据通信»协议»TCP选板上的TCP/IP函数进行TCP通信。与DAQ、仪器和文件I/O通信一样,该过程包括打开连接、读取和写入信息以及关闭连接。
对于大多数I/O通信,处理器总是作为客户端发起与磁盘驱动器服务器、外部仪器服务器或DAQ板卡服务器的连接。在TCP/IP连接中,计算机可作为客户端或服务器。以下的程序框图表示了一个客户端应用程序,它使用“TCP打开连接”发起到远程服务器的连接。服务器(又称伺服机)侦听远程连接并进行适当响应。
LabVIEW用户可开发用于TCP/IP通信的自定义应用程序。程序员同时负责开发客户端和服务器。
由于任何人都可以发起服务器连接,因此可能需要服务器访问控制。以下程序框图显示了服务器如何使用“TCP侦听VI”的远程地址输出值来确定远程客户端是否具有访问服务器的权限。
大多数应用程序不只是写入和读取一个值。通信是一个使用具体协议完成的持续过程。例如,假设客户端以8位整型向服务器发送以下4个命令:
1 = 采集数据并确认
2 = 发送数据
3 = 获取状态
4 = 关闭连接
下图*显示了服务器如何接收这些命令。请注意,虽然包含相同的基本TCP函数,但周围的代码允许更复杂的连接和稳健的通信。
以下程序框图*显示了内部条件语句的其他4个分支。每个分支处理一种服务器发送的特定命令。每个分支都向继续接线端发送信息,决定是否继续循环。需要注意的是,“退出”分支总是返回FALSE值。离开循环后,服务器关闭与客户端的连接。
这种类型的服务器架构可助您开发灵活的服务器,用于更加复杂的网络通信过程。您开发的协议可能比前文中的范例更加复杂。
*请注意,这些图像来自LabVIEW前期版本。数据线和函数图标的颜色可能与您的版本不匹配。但代码结构仍然适用。