在LabVIEW和CVI中,TCP和DataSocket是怎么访问另一台计算机的端口的?



主要软件: LabVIEW Development Systems>>Full Development System
主要软件版本: 6.0
主要软件修正版本: N/A
次要软件: N/A

问题:
我正在编写一个访问网络服务器的应用程序。我想知道怎样在LabVIEW和CVI中使用TCP和DataSocket访问另一台计算机的某个指定端口?

解答: DataSocket和VI Server技术都是基于TCP协议的,因此从根本上来讲,DataSocket、VI Server和TCP所使用的通讯方式是相同的。LabVIEW和CVI都是通过相同的操作系统的socket服务(比如说,在Windows系统中的Winsock API)来进行基于TCP协议的通讯的。例如,在Windows系统中,一个VI可能使用可以调用多个WinSock API函数的DataSocket函数来实现与主机作基于TCP/IP协议通讯的应用程序。

TCP/IP通讯的基本原理是:通过指定IP地址(或计算机名)和端口,访问某个客户端,比如LabVIEW中的一个VI;其中一个例子就是端口为80的www.ni.com:

 

当您的应用程序试图通过某个端口连接另一台计算机时,操作系统首先在您的应用程序所运行的计算机上打开这个为连接服务的端口。通常操作系统会帮您选择这个端口,因此您不必要去了解具体的端口号,但是请注意:端口号对这个连接来说是独一无二的。连接端口另一端的服务器会监听并且接受连接请求,然后打开相应的端口以发送数据。如果服务器支持,您可以建立多个访问连接到同一个远程端口,但是对于每个本地客户端来说,都会有一个独一无二本地端口以监听和接收数据。

为了使用TCP/IP协议与另一台计算机的应用程序,您需要知道以下的信息:

 

  • 通讯协议,比如TCP/IP
  • 本地IP地址和一个没被占用的端口号
  • 远程服务器的IP地址和端口号
应用DataSocket和TCP,您的用LabVIEW或CVI编写的远程服务器上运行的应用程序可以接受多个本地访问连接,而每个本地连接都会打开一个本地连接端口。


相关链接:
KnowledgeBase 21O98RLI: What Port Numbers Can I Use with TCP and UDP?
Developer Zone Tutorial: A Simple TCP/IP Protocol for LabVIEW
Developer Zone Tutorial: Building Network Applications with the LabWindows/CVI TCP Support Library
White Paper: Datasocket Article
TCP/IP Frequently Asked Questions

LabVIEW的网络连接工具包扩展了LabVIEW的功能,提供了对各种流行的网络通讯协议的支持。应用该工具包,开发者可以非常方便地利用各种现有网络设备来远程控制VI、传输数据,甚至利用工具包中地G web服务器和CGI功能实现受密码保护的数据存储服务。该工具包同时提供了底层和高层的VI,使您的程序编写更加灵活。如果想了解更多的关于LabVIEW网络连接工具包的信息, 请点击这里

LabVIEW的网络连接工具包是单独购买或者包含在LabVIEW企业连接工具包(过程统计工具包和数据库连接工具包)里一起购买。

附件:





报告日期: 05/18/2006
最近更新: 12/18/2007
文档编号: 2G4CULON