首页 理论教育LabVIEW2012中文版:TCP节点介绍

LabVIEW2012中文版:TCP节点介绍

【摘要】:下面对TCP节点及其用法进行介绍。图11-45 打开TCP连接节点超时毫秒:在函数完成并返回一个错误之前所等待的毫秒数。图11-46 读取TCP数据节点模式:标明了读取操作的行为特性。图11-48 关闭TCP连接节点6.解释机器别名返回使用网络和VI服务器函数的计算机的物理地址。图11-50 创建TCP侦听器节点端口(输入):所侦听连接的端口号。图11-51 等待TCP侦听器节点侦听器ID输入:一个能够唯一表明侦听器身份的网络连接标识。

在LabVIEW中,可以采用TCP节点来实现局域网通信,TCP节点在函数选板>>“数据通信”>>“协议”>>“TCP”子选板中。如图11-43所示。

下面对TCP节点及其用法进行介绍。

978-7-111-40983-0-Chapter11-50.jpg

图11-43 TCP子选板

1.TCP侦听

创建一个听者,并在指定的端口上等待TCP连接请求。该节点只能在作为服务器的计算机上使用。TCP侦听VI的节点图标及端口定义如图11-44所示。

978-7-111-40983-0-Chapter11-51.jpg

图11-44 TCP侦听VI

端口:所要听的连接的端口号

超时毫秒:连接所要等待的毫秒数。如果在规定的时间内连接没有建立,该VI将结束并返回一个错误。默认值为-1,表明该VI将无限等待。

连接ID:是一个唯一标识TCP连接的网络连接refnum。客户机VI使用该标识来找到连接。

远程地址:与TCP连接协同工作的远程计算机的地址。

远程端口:使用该连接的远程系统的端口号。

2.打开TCP连接

用指定的计算机名称和远程端口来打开一个TCP连接。该节点只能在作为客户机的计算机上使用。打开TCP连接节点的节点图标及端口定义如图11-45所示。

978-7-111-40983-0-Chapter11-52.jpg

图11-45 打开TCP连接节点

超时毫秒:在函数完成并返回一个错误之前所等待的毫秒数。默认值是60000ms。如果是-1则表明函数将无限等待。

3.读取TCP数据

从指定的TCP连接中读取数据。读取TCP数据节点的节点图标及端口定义如图11-46所示。

978-7-111-40983-0-Chapter11-53.jpg

图11-46 读取TCP数据节点

模式:标明了读取操作的行为特性。0:标准模式(默认),等待直到设定需要读取的字节全部读出或超时。返回读取的全部字节。如果读取的字节数少于所期望得到的字节数,将返回已经读取到的字节数并报告一个超时错误。1:缓冲模式,等待直到设定需要读取的字节全部读出或超时。如果读取的字节数少于所期望得到的字节数,不返回任何字节并报告一个超时错误。2:CRLF模式,等待直到函数接收到CR(carriagereturn)和LF(linefeed)或则发生超时。返回所接收到的所有字节及CR和LF。如果函数没有接收到CR和LF,不返回任何字节并报告超时错误。3:立即模式,只要接收到字节便返回。只有当函数接收不到任何字节时才会发生超时。返回已经读取的字节。如果函数没有接收到任何字节,将返回一个超时错误。

读取的字节:所要读取的字节数。可以使用以下方式来处理信息。

➢在数据之前放置长度固定的描述数据的信息。例如,可以是一个标识数据类型的数字,或说明数据长度的整型量。客户机和服务器都先接收8个字节(每一个是一个4字节整数),把它们转换成两个整数,使用长度信息决定再次读取的数据包含多少个字节。数据读取完成后,再次重复以上过程。该方法灵活型非常高,但是需要两次读取数据。实际上,如果所有数据是用一个写入函数写入的话,第二次读取操作会立即完成。

➢使每个数据具有相同的长度。如果所要发送的数据比确定的数据长度短,则按照事先确定的长度发送。这种方式效率非常高,因为它以偶尔发送无用数据为代价,使接收数据只读取一次就完成。

➢以严格的ASCII码为内容发送数据,每一段数据都以carriagereturn和linefeed作为结尾。如果读取函数的模式输入端连接了CRLF,那么直到读取到CRLF时,函数才结束。对于该方法,如果数据中恰好包含了CRLF,那么将变的很麻烦,不过在很多Internet协议里,比如POP3,FTP和HTTP,这种方式应用的很普遍。

超时毫秒:以毫秒为单位来确定一段时间,在所选择的读取模式下返回超时错误之前所要等待的最长时间。默认为25000ms。输入-1时表明将无限等待。

连接ID输出:与连接ID的内容相同。

数据输出:包含从TCP连接中读取的数据。

4.写入TCP数据

通过数据输入端口将数据写入到指定的TCP连接中。写入TCP数据节点的节点图标及端口定义如图11-47所示。

978-7-111-40983-0-Chapter11-54.jpg

图11-47 写入TCP数据节点

数据输入:包含要写入指定连接的数据。数据操作的方式,请参见读取TCP数据节点部分的解释。

超时毫秒:函数在完成或返回超时错误之前将所有字节写入到指定设备的一段时间,以毫秒为单位。默认为25000ms。如果为-1,表示将无限等待。

写入的字节:VI写入TCP连接的字节数。(www.chuimin.cn)

5.关闭TCP连接关闭指定的TCP连接。关闭TCP连接的节点图标及端口定义如图11-48所示。

978-7-111-40983-0-Chapter11-55.jpg

图11-48 关闭TCP连接节点

6.解释机器别名

返回使用网络和VI服务器函数的计算机的物理地址。关闭TCP连接VI的节点图标及端口定义如图11-49所示。

978-7-111-40983-0-Chapter11-56.jpg

图11-49 解释机器别名VI

机器别名:计算机的别名。

网络标识:计算机的物理地址,例如IP地址。

7.创建TCP侦听器

创建一个TCP网络连接侦听器。如果将0接入输入端口,将动态选择一个操作系统使用的可用的TCP端口。创建TCP侦听器节点的节点图标及端口定义如图11-50所示。

978-7-111-40983-0-Chapter11-57.jpg

图11-50 创建TCP侦听器节点

端口(输入):所侦听连接的端口号。

侦听器ID:能够唯一表示侦听器的网络连接标识。

端口(输出):返回函数所使用的端口号。如果输入端口号不是0,则输出端口号与输入端口号相同。如果输入端口号为0,将动态选择一个可用的端口号。根据IANA(Assigned Numbers Authority)的规定,可用的端口号范围是49152~65535。最常用的端口号是0~1023,以注册的端口号是1024~49151。并非所有的操作系统都遵从IANA标准。例如,Windows返回1024~5000之间的动态端口号。

8.等待TCP侦听器

在指定的端口上等待TCP连接请求。TCP侦听VI节点就是创建TCP侦听器节点与本节点的综合使用。等待TCP侦听器节点的节点图标及端口定义如图11-51所示。

978-7-111-40983-0-Chapter11-58.jpg

图11-51 等待TCP侦听器节点

侦听器ID输入:一个能够唯一表明侦听器身份的网络连接标识。

毫秒超时:等待连接的毫秒数。如果在规定的时间内连接没有建立,函数将返回一个错误。默认值为-1,说明将无限等待。

侦听器ID输出:侦听器ID输入的一个副本。

连接ID:TCP连接的唯一的网络连接标识号。

9.IP地址至字符串转换

将IP地址转换为计算机名称。IP地址至字符串转换节点的节点图标及端口定义如图11-52所示。

网络地址:想要转换的IP网络地址。

Dotnotation?(F):说明输出的名称是否是点符号格式的。默认为FALSE,说明返回的IP地址是machinename.domain.com格式的。如果选择Dot notation格式则返回的IP地址是128.0.0.25格式。

名称:与网络地址相等价的网络地址。

10.字符串至IP地址转换

将计算机名称转换为IP地址。如不指定计算机名称,则节点输出当前计算机的IP地址。字符串至IP地址转换节点的节点图标及端口定义如图11-53所示。

978-7-111-40983-0-Chapter11-59.jpg

图11-52 IP地址至字符串转换节点

978-7-111-40983-0-Chapter11-60.jpg

图11-53 字符串至IP地址转换节点