TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。使用LabVIEW基于TCP协议编写通信软件时,一般其整个传输过程如下:
(1)服务器通过主机名或者IP地址与端口号,建立侦听,等待客户端连接;
(2)客户端根据主机的IP地址和端口号发出连接请求;
(3)服务器与客户端建立连接后,通过读写函数进行TCP数据通信;
(4)关闭连接。
在LabVIEW中,提供了一组专门的相关TCP的操作函数,在后面板程序框图中进入函数数据通信协议中选择TCP可以进入TCP子模板,主要节点函数如下图所示。
使用上面的函数,下面分别给出服务器端程序和客户端程序的具体实现方法。
服务器端程序
服务器端前面板如下图所示,其中,“端口号”设置服务器程序的端口,该值即为客户端程序的要连接的服务器程序的端口标识值;“接收的字符串”为客户端发给服务器的内容
服务器端程序框图如下:
TCP侦听:创建侦听器并等待位于指定端口的已接受TCP连接。
网络地址(接线端):指定侦听的网络地址。有多块网卡时,如需侦听特定地址上的网卡,应指定网卡的地址。如未指定网络地址,LabVIEW可侦听所有的网络地址。 通过字符串至IP地址转换函数可获取当前计算机的IP网络地址。
服务名称(接线端):创建端口号的已知引用。如指定服务名称,LabVIEW将使用NI服务定位器注册服务名称和端口号。
端口(接线端):是要侦听连接的端口号。
超时毫秒(接线端):指定VI等待连接的时间,以毫秒为单位。如未在指定时间内建立连接,VI可完成并返回错误。默认值为-1,表示无限等待。
错误输入(接线端):表明节点运行前发生的错误。该输入将提供标准错误输入功能。
分解远程地址(接线端):表明是否在远程地址调用“IP地址至字符串转换”函数。默认值为TRUE。 更多信息,见IP地址至字符串转换。
侦听器ID(接线端):是唯一标识侦听器的网络连接句柄。
连接ID是唯一标识TCP连接的网络连接引用句柄。该连接句柄用于在以后的VI调用中引用连接。
远程地址(接线端):是与TCP连接关联的远程机器的地址。该地址使用IP句点符号格式。
远程端口(接线端):是远程系统用于连接的端口。
错误输出(接线端):包含错误信息。该输出将提供标准错误输出功能。
“读取TCP数据”节点函数读取服务器端程序发送的数据,客户端首先读取接收消息内容的字节信息,输入I32类型的常数“4”,表示读取4个字节的内容,最后调用“关闭TCP连接”函数,退出程序。
网友评论