网络流的介绍
网络流是一种易于配置、紧密集成的动态通信方法,用于将数据从一个应用程序传输到另一个应用程序,其吞吐量和延迟特性可与 TCP 相媲美。但是,与 TCP 不同的是,网络流直接支持任意数据类型的传输,而无需先将数据展合和拆合为中间数据类型。网络流以向后兼容的方式展平数据,使使用不同版本LabVIEW运行引擎的应用程序能够安全、成功地相互通信。网络流仅仅适用与Labview软件之间的通信与其他软件不兼容。
网络流的使用步骤
1.创建网络流端点-读取/写入
2.写入数据/读取数据
3.关闭网络流端点
端点URL配置
ni.dex://host_name:context_name/endpoint_name
URL的组成部分
- ni.dex URL
使用的协议。dex协议指定URL为端点URL。 该部分可以配置时可以省略。
- host_name
端点所在计算机的项目别名、DNS名或IP地址。该部分的默认值为localhost,即连接至端点所在的计算机的网络位置。
- context_name
端点所在的应用程序名称。除非指定的URL包含“创建网络流写入方端点”函数的写入方名称接线端或“创建网络流读取方端点”函数的读取方名称接线端,否则该部分为空字符串。 注: 一台计算机上只能有一个应用程序名称可以作为默认context_name。因此,如一台计算机上有多个应用程序使用网络流,必须为这些应用程序的每个端点分配一个URL,而不是名称。—说人话就是当在同一台计算机上多个应用程序使用网络流时,创建写入端点中的写入方名称、读取URL及创建读取端点中的读取方名称均写URL格式。
- endpoint_name
分配给端点的名称,“创建网络流写入方端点”函数的写入方名称接线端,“创建网络流读取方端点”函数的读取方名称接线端。
例子
将数据流至运行网络流应用程序的计算机
连接端点至运行一个网络流应用程序的远程计算机时,如下图所示,必须使用下列语法的URL在两个端点之间建立连接:
//host_name/endpoint_name
按照下列步骤,使用该语法URL在两个端点之间按提示建立连接。
- 使用“创建网络流读取方端点”函数在远程计算机上创建一个读取方端点,如下图所示。
在上图中,host_name是10.0.0.62,endpoint_name是Reader。因此,该端点的URL为//10.0.0.62/Reader。 注: LabVIEW按照下列顺序解析主机名称:
终端名称(在LabVIEW项目中指定)
DNS名称
IP地址
- 使用“创建网络流写入方端点”函数在本地主机上创建一个写入方端点,使用读取方URL指定读取端点的URL,如下图所示。
将数据流至运行多个网络流应用程序的计算机
连接端点至运行多个网络流应用程序的远程计算机时,如下图所示,必须使用下列语法的URL在两个端点之间建立连接:
//host_name:context_name/endpoint_name
按照下列步骤,使用该语法URL在两个端点之间按提示建立连接。
- 使用“创建网络流读取方端点”函数在远程计算机上创建一个读取方端点,如下图所示。
在运行多个使用网络流应用程序的计算机上创建端点时,URL必须包括host_name、context_name、endpoint_name,如上图所示。在该例中,为端点分配URL,而不是名称,确保了一台计算机上的多个应用程序不使用相同的context_name,避免端点重复连接。
- 使用“创建网络流写入方端点”函数在本地主机上创建一个写入方端点,使用读取方URL指定读取端点的URL,如下图所示。
将数据流至本地主机上的一个应用程序
如连接至本地主机上另一个应用程序中的端点,如下图所示,必须使用下列语法的URL在两个端点之间建立连接。
//localhost:context_name/endpoint_name
按照下列步骤,使用该语法URL在两个端点之间按提示建立连接。
- 使用“创建网络流读取方端点”函数在应用程序中创建一个读取方端点,如下图所示。
- 使用“创建网络流写入方端点”函数在另一个应用程序中创建一个写入方端点,使用读取方URL指定读取端点的URL,如下图所示。
注: 本地主机运行两个使用网络流的应用程序,所以必须为每个端点指定URL,而非名称。