APP下载

大型灌区基于UDP协议的局域网通讯程序开发研究

2011-08-23

科学之友 2011年19期
关键词:控件局域网端口

李 乾

(上海交通大学电子信息与电气工程学院,上海 200240)

1 概述

我国由于水资源与人口、耕地、矿产资源分布和生产力布局不相匹配,以及管理粗放、手段落后等原因,导致了水资源的掠夺性开发利用,引发了地下水超采、地下水位不断下降、湖泊萎缩和水污染加剧等一系列问题,严重威胁到社会经济的持续发展。由“工程水利”向“资源水利”转变、“传统水利”向“现代水利、可持续发展水利”转变,特别强调非工程措施的管理作用,需要深入研究水资源实时监控的理论技术,充分利用现代信息技术,研制和开发灌区计算机监测控制系统,为水资源的实时监测、信息管理、决策支持和远程监控等提供系统平台。系统的建设运行将使水资源的管理发生重大变革,也将带来巨大的经济、社会和环境效益。

现代社会是一个计算机网络和PC技术空前大发展的时代,各个传统学科都在积极地与这两个新生事物相融合,以谋求学科的新发展。在此背景下,农业水利专业信息化方向应运而生,灌区信息化的开发研究作为主要的研究领域,涉及水利、计算机及通信多个领域,涉及的主要内容有计算机、通信和网络、数据通信、网络结构、局域网技术、Internet网络、网站组建技术、网页制作等多方面的知识。本研究从实用性和先进性出发,本研究是编写一个简单的基于局域网的工作程序,使分布在局域网内的两台计算机可以实现实时通信,整个程序采用Visual Basic 6.0来实现,系统地研究了大型灌区信息化系统基于UDP协议的局域网通讯程序的开发[1]。

2 设计依据及用户界面

该设计中所涉及到的网络通信协议主要是TCP/IP协议:TCP/IP是Transmission Control Protocol/Internet Protocol的简写,又叫网络通讯协议,这个协议是Internet最基本的协议,是Internet国际互联网络的基础。确切地说,TCP/IP协议就是一组包括 TCP 协议和 IP 协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。TCP/IP协议有三个主要的特点:功能丰富、开放性和普遍性,其特征是采用了分层体系结构,所涉及的层次包括网络接口层、网络层、传输层和应用层,见图1。

图1 TCP/IP参考模型

图2 程序设计的界面

2.1 设计平台

开发中所涉及到的计算机编程语言是Visual Basic,Visual Basic6.0是用来创建高性能的企业应用程序及基于Web的应用程序的最有效工具。其快速应用开发(Rapid Application Development:RAD)工具既可以作为一个单独的产品,也可以作为Visual Studio 6.0套件的一个组成部分。

2.2 用户界面

该程序设计的界面见图2,风格简洁。

3 各模块功能及软件开发

3.1 各模块功能简介

在该程序的设计中,要使用到以下常用控件,见表1。

本开发研究中用到了以下几个WINSOCK的属性[2]:

(1)PROTOCOL(控制协议)属性,将PROTOCOL属性设置为sckUDPProtocol。

(2)属性 RemoteHost是远程主机的地址,LocalPort、RemotePort分别是本地主机的端口和远程主机端口,对客户来说,该属性指定发送数据的本地端口,而对于服务器来说,这是用于侦听的本地端口,在设置这两个属性时必须保证两台主机的端口值符合下面规则,即主机1的LocalPort等于主机2的RemotePort值,同样主机1的RemotePort等于主机2的LocalPort值,这样才能保证两机通讯的正常进行。

(3)LocalIP属性用于返回本地机器的IP地址,格式是IP地址加点的字符串(xxx.xxx.xxx.xxx);

表1 常用控件

开发中用到了以下几个WINSOCK的方法:

(1)在创建UDP应用程序时调用了Bind方法。Bind方法的作用是为控件“保留”一个本地端口。例如,如果将控件绑定到1001号端口,那么其它应用程序将不能使用该端口进行“监听”。该方法阻止其他应用程序使用同样的端口。

(2)SendData方法用于发送一条数据给另一台主机,使用这个方法的语法是:WinSock.SendData[要发送的数据];

(3)GetData方法。当DataArrival事件出现时,代码调用Get-Data方法获取数据,并将数据存储在字符串变量中。使用语法是:WinSock.GetData[接收数据的变量];

(4)用到了以下WINSOCK的事件:DataArrival事件:使用了DataArrival事件,DataArrival事件是当新数据到达时被触发的事件,使用的语法为:WinSock1_DataArrival(bytesTotal As Long),变量bytesTotal表示获取的数据总数量。

在两个WINSOCK控件中间发送数据,关键要完成以下三步:

(1)将RemoteHost属性设置为另一台计算机的IP地址。

(2)将RemotePort属性设置为第二个控件的LocalPort属性。

(3)调用Bind方法,指定使用的LocalPort。

3.2 软件开发流程

软件的编制步骤:

(1)打开Visual Basic 6.0的集成开发环境,创建一个新的标准EXE文件。将缺省的窗体名修改为frmMain,并将其Caption属性修改为“局域网应用程序”;

(2)在窗体中添加一个WinSock控件,在其“属性”页上,单击“协议”,并将协议修改为sckUDPProtocol。尔后陆续添加其他控件并修改其相应的属性;

(3)编写代码;

(4)代码编写完成后,将程序生成“Chat.EXE”文件,到此该软件开发完成。

4 软件调试分析

将“Chat.EXE”程序,分别安装到局域网内的两台计算机上,见图3。

图3 程序调试图

5 结论

本文结合大型灌区自动化监控系统的工程实际,提出将基于UDP协议的局域网通讯程序应用于大型灌区自动化监控系统中的数据通讯环节,该程序可以实现大型灌区自动化监控,具有灵活、方便、可靠性高,成本低廉等优点,对于大型灌区的信息化建设具有一定的指导意义。

[2]《计算机网络》张增量,李生元.西安:西安交通大学出版社,2004.

猜你喜欢

控件局域网端口
使用“填表单”微信小程序 统计信息很方便
一种有源二端口网络参数计算方法
一种端口故障的解决方案
基于.net的用户定义验证控件的应用分析
多按键情况下,单片机端口不足的解决方法
基于VPN的机房局域网远程控制系统
现有网络架构及迁移方案
关于.net控件数组的探讨
计算机局域网组建及管理探讨
局域网性能的优化