2.2 Web Server
在前面提到的DataSocket编程虽然可以很方便地用来传输现场数据到远程浏览,但是在远程计算机上也必须编写程序来接收数据。在很多情况下,用户希望能够直接将服务端的VI程序面板“原封不动”地复现在远程客户端上,在远程计算机上进行浏览和操作,而LabVIEW 的Web Server恰好能够实现这一功能。
在远程客户端连接服务端面板之前,需要先配置并启动本地LabVIEW的Web服务器,而后在远程客户端必须安装LabVIEW Run-Time引擎才能通过网页连接服务端VI面板。
配置并启动本地LabVIEW的Web服务器时,首先选择主菜单的“工具|选项|Web服务器:配置”,选择“启用Web服务器”,其他可保持默认。而后在“工具|Web发布工具”选项里即可进行网络发布。在远程客户端网页浏览器里输入如“http://202.200.186.160”形式的网址即可访问服务端,如图4所示。利用Web Server的好处是用户无需任何的编程就能在远程计算机上通过网页连接服务端的VI前面板进行浏览和操作,但相对DataSocket来说传输速率较低,在传输大量数据时有可能造成数据的丢失,故其较适合在数据传送量不大、需要远程模拟仿真的情况。
需要注意的是,要想在客户端连接服务端的摄像头视频,必须先在客户机上安装NI公司的visionrte.exe[4]应用程序,才能接收到完整的视频信息。
2.3 TCP编程
鉴于TCP协议在绝大多数计算机上都有安装,因此其使用也就更为普遍。但是其编程相对于其他的网络编程更加复杂,用户端需要考虑如何建立连接、分配端口号、进行地址转换等。TCP(Transmission Control Protocol)传输控制协议是一个面向连接的协议,允许从一台计算机发出的字节流无差错地发往互联网上的其他计算机。TCP是基于两个网络主机之间的点对点通信,从程序接收数据并将数据处理成字节流,再将字节组合成段,然后TCP对段编号和排序以便传递。在两个TCP主机交换数据之前,必须先相互建立会话。TCP会话通过三向握手的过程进行初始化。这个过程使序号同步,并提供在两个主机之间建立虚拟连接所需的控制信号。一旦初始的三向握手完成,在发送和接收主机之间将按顺序发送和确认段。关闭连接之前,TCP使用类似的握手过程验证两个主机都完成发送和接收全部数据[6]。
TCP通信的两端分别为服务器端和客户端。如图5和图6所示,服务端首先对指定的端口(如9000)监听,客户端向服务端被监听的端口发出请求,服务端接收到来自客户端的请求后便建立客户端与服务端的连接,然后就可以利用该连接进行通信了。