網絡流的介紹
網絡流是一種易于配置、緊密集成的動態通信方法,用于將數據從一個應用程序傳輸到另一個應用程序,其吞吐量和延遲特性可與 TCP 相媲美。但是,與 TCP 不同的是,網絡流直接支持任意數據類型的傳輸,而無需先將數據展合和拆合為中間數據類型。網絡流以向后兼容的方式展平數據,使使用不同版本LabVIEW運行引擎的應用程序能夠安全、成功地相互通信。網絡流僅僅適用與Labview軟件之間的通信與其他軟件不兼容。
網絡流的使用步驟
1.創建網絡流端點-讀取/寫入
2.寫入數據/讀取數據
3.關閉網絡流端點
4.斷線重連—a.首先銷毀當前的網絡流后再重新創建網絡流,即先使用Destory Stream Endpoint→錯誤清除→Creat Network Stream Write Endpoint
端點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,而非名稱。