LabVIEWCompactRIO 开发指南17 网络流

简介: LabVIEWCompactRIO 开发指南17 网络流

LabVIEWCompactRIO 开发指南17


网络流


网络流类似于队列函数,因为它们是基于FIFO的,但与队列函数不同的是,网络流具有网络作用域。它们是为通过以太网进行无损、高吞吐量数据通信而设计和优化的,并且它们具有增强的连接管理功能,如果由于网络中断或其他系统故障而断开连接,则可以自动恢复网络连接。流使用缓冲的无损通信策略,确保写入流的数据永远不会丢失,即使在具有间歇性网络连接的环境中也是如此。


由于网络流构建时具有与原始TCP相当的吞吐量特征,因此它们非常适合程序员希望避免TCP复杂性的高吞吐量应用程序。还可以使用流进行无损、低吞吐量的通信,例如发送和接收命令。


网络流使用单向点对点缓冲通信模型在应用程序之间传输数据。这意味着一个端点是数据的写入者,另一个端点是读取者。应用程序可能需要多个流来通信多种类型的数据,如图4.13所示。

be4d0a069494654b21f52a3912920629.png



图4.13 网络流使用单向、点对点缓冲通信模型


图4.13显示了一个基本的Network Streams实现。一个进程在实时目标上执行,另一个进程在主机上执行。可以遵循三个基本步骤来设置网络流:


1. 创建端点并建立流连接


2. 读取或写入数据


3.销毁端点


创建端点


一旦创建了兼容的读取器和写入器端点,就建立了连接。创建端点的顺序并不重要。流要尝试重新连接,必须至少有一个端点处于活动状态。

610525386eaf8da22f04ffa7228f89cd.png



图4.14 创建读取器和写入器端点。


如果发生断开连接并且一个端点变为非活动状态,则协议将在后台自动执行重新连接。该协议永远重试,保持数据流的无损特性。当协议尝试重新连接时,活动端点输出一条错误消息,通知用户端点无法重新同步。还可以使用图4.15所示的网络流端点属性节点来监视流是否连接。


56b676d1d4211cc3dcc75f6cbbed7c3f.png


图4.15 使用属性节点监视网络流端点连接状态


读写数据


当读取或写入网络流时,可以一次写入单个元素或多个元素,这取决于选择的网络流函数。数据永远不会被覆盖或重新生成,也不会发生部分数据传输。读/写函数要么成功要么超时。


e4a10e499e8a69ead4a5c767a1df4ade.png


图4.16 网络流的基本实现,通过网络传输数据


销毁端点


在销毁网络流端点之前,可以使用刷新流。VI以确保所有数据都已从写入器端点传输。如果选择“AllElements Read from Stream”,则写入器端点不会销毁自己,直到写入器缓冲区中的所有元素都被放入并从读取器缓冲区中读取。如果选择“All Elements Available for Reading”,一旦所有元素被放入读取器缓冲区,写入器端点就会自行销毁。




图4.17 使用冲洗流,VI关闭网络流


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
1月前
|
网络协议 安全 数据挖掘
LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践
LabVIEWCompactRIO 开发指南12 LabVIEWCompactRIO 开发指南12 第四章网络通信的最佳实践
20 2
|
1月前
LabVIEWCompactRIO 开发指南16 有效使用网络共享变量的技巧
LabVIEWCompactRIO 开发指南16 有效使用网络共享变量的技巧
23 1
|
1月前
|
监控 Linux API
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
30 0
LabVIEWCompactRIO 开发指南15 托管和监控网络发布的共享变量
|
1月前
LabVIEWCompactRIO 开发指南18 使用网络流发送消息和命令
LabVIEWCompactRIO 开发指南18 使用网络流发送消息和命令
21 0
|
1月前
|
监控 安全 数据库
LabVIEWCompactRIO 开发指南13 网络发布的共享变量特性
LabVIEWCompactRIO 开发指南13 网络发布的共享变量特性
20 0
|
1月前
|
网络协议 Windows
LabVIEWCompactRIO 开发指南13 网络发布的共享变量
LabVIEWCompactRIO 开发指南13 网络发布的共享变量
17 0
|
1月前
|
消息中间件 Java Linux
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
|
22天前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
40 1
|
7天前
|
安全 物联网 Linux
学习Linux对网络安全的重要性
**学习Linux对网络安全至关重要:** 1. 开源操作系统广泛应用于服务器、网络设备,掌握Linux是安全专家必备技能。 2. Linux内置安全特性,如最小权限和防火墙,加上丰富的安全工具,提供强大保障。 3. 可定制性允许灵活配置,满足安全需求,开源社区提供持续更新和教育资源。 4. 学习Linux能提升攻防能力,用于系统加固和渗透测试,适应跨平台安全场景。 5. 随着云计算和物联网发展,Linux在网络安全中的角色日益关键。
31 3
|
2天前
|
监控 安全 Linux
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
虚拟专用网络(VPN):远程访问与点对点连接及其在Linux中的IPSec实现与日志管理
8 0

热门文章

最新文章