LabVIEW开发TCP网络通讯程序1

简介: LabVIEW开发TCP网络通讯程序1

LabVIEW开发TCP网络通讯程序1


虽然创建“服务器”的想法可能有一定的神秘感,但其实没有太多的意义–至少在使用LabVIEW时是这样。该过程的基本假设是,有一些东西监视计算机的网络接口,等待客户端应用程序请求TCP/IP连接。在网络术语中,这个“东西”被称为“侦听器”,因为侦听以太网接口进行连接。然而,给定的侦听器不仅仅是侦听任何连接尝试,而是网络标准定义了在单个接口上创建多个“端口”的能力,然后将特定端口与特定应用程序相关联。因此,当用户创建侦听器时,用户必须告诉它要监视的端口。


理论上,端口号可以是任何U32值,但现有标准指定了某些端口号上预期的流量类型。例如,默认情况下,端口80或8080上应有HTTP连接,FTP的默认端口21和LabVIEW默认侦听端口3363。用户所要做的就是选择一个不用于计算机上其他任何内容的数字。要在LabVIEW中创建侦听器,有一个内置函数TCP Create Listener,它需要一个端口号,并返回对它创建的侦听器的引用。但是果用户选择其他应用程序已经在侦听的端口,则返回错误。


创建侦听器后,用户必须通过调用内置函数TCP Wait On Listener来告诉它开始侦听。顾名思义,它会等到在关联的端口上建立连接,不过用户通常需要指定超时。当此函数看到并建立传入连接时,它会输出特定于该特定连接的新引用。然后,连接处理程序VI可以使用该引用来管理与该特定远程设备或进程的交互。


最后,完成工作后,通过关闭侦听器引用TCP Close Connection和已打开的所有连接引用来终止服务器。把这三个阶段放在一起,就是如下所示的内容。


6f6616bd3e0ac72f157811c8d8b45f85.png


这个简单的代码创建一个侦听器、等待连接、为该连接提供服务(它从中读取4个字节),然后退出。虽然这段代码原理没问题,但并不是太实用。例如,只等待一个连接然后退出的服务器有什么用?值得庆幸的是,扩展此示例并不难。用户所要做的就是将其变成一个状态机。


一步一个脚印---事缓则圆


众所周知,状态机内置超时事件,因此以下状态包括指向下一个要执行的状态的移位寄存器,以及第二个带有代码在进入该状态之前将施加的延迟的寄存器。这里有一个状态图,显示了流程的基本流程。


3b5dcdc3f0667a249aee5358bdc1c2f8.png



执行从状态开始。此时的主要工作是创建TCP侦听器。接下来耐心地等待连接,在短时间内循环回自身。只要没有建立连接,这种状态就会一遍又一遍地执行。这一系列的短暂等待为其他事件(如关闭服务器的事件)提供了执行的机会。


建立连接后,程序将运行该状态。由于状态机尽快返回等待新连接至关重要,因此该状态会动态启动可重入连接处理程序VI,并立即转换回该状态。


状态机继续在最后两种状态之间运行,直到请求服务器停止。此时,代码将转换为释放侦听器并停止状态机的状态。


未完待续


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

相关文章
|
4天前
|
网络协议 安全 前端开发
QUIC 和 TCP:了解为何 QUIC 是未来的网络协议
在过去的三十年里,HTTP(超文本传输协议)一直是互联网的支柱。我们可以通过 HTTP 浏览网页、下载文件、流式传输电影等。这一协议随着时间的推移已经得到了重大改进。
|
13天前
|
移动开发 网络协议 视频直播
25.Python 网络编程:TCP和UDP编程
25.Python 网络编程:TCP和UDP编程
19 2
|
14天前
|
网络协议 算法 程序员
网络原理(4)——TCP协议的特性
网络原理(4)——TCP协议的特性
12 1
|
14天前
|
网络协议 前端开发 Java
网络原理(3)——TCP协议的特性
网络原理(3)——TCP协议的特性
7 0
|
14天前
|
网络协议 程序员 API
网络原理(2)——TCP协议(传输层)
网络原理(2)——TCP协议(传输层)
14 0
|
14天前
|
网络协议 Java API
网络编程套接字(4)——Java套接字(TCP协议)
网络编程套接字(4)——Java套接字(TCP协议)
16 0
|
15天前
|
消息中间件 网络协议
【消息队列开发】 设计网络通信协议
【消息队列开发】 设计网络通信协议
|
29天前
|
消息中间件 Java Linux
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
|
11天前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
28 1
|
12天前
|
负载均衡 Ubuntu Linux
Linux命令探秘:bond2team与网络绑定技术
Linux的`bond2team`是网络绑定和团队技术工具,用于组合多个网络接口以提升带宽、容错性和负载均衡。通过安装`ifenslave-2.6`,在`/etc/sysconfig/network-scripts/`或`/etc/network/interfaces`配置文件中设定接口绑定模式,如`activebackup`。它支持负载均衡、容错和热备等多种工作模式,确保网络高可用性和性能。在配置前务必备份,并重启服务使配置生效。

热门文章

最新文章