基于VB6.0的Winsock控件的远程数据传输的方法

2015-05-07 10:20窦楠
成长·读写月刊 2014年11期
关键词:服务器端控件调用

窦楠

【摘 要】在Visual Basic 6.0 环境下,利用Winsock控件实现与远程数据采集端连接和数据传输。与传统数据传输方法进行比较,该方法简单且易于实现,并充分利用了网络资源。介绍了Winsock控件,结合示例程序,说明了该方法实现流程。最后通过实验,证实该方法进行远程数据传输的可靠性。

【关键词】数据传输;VB6.0;Winsock控件;协议

在远程数据采集和传输系统中,传统的方法有2 种:一是采用RS-485进行远程控制;二是通过调制解调器进入电话线来实现远程控制,然而这2 种方法都有自己的缺点。这样一来就限制了它们的应用范围。

本文介绍了在VB6.0中利用Winsock控件来实现服务器端与远程客户端建立连接并进行数据传输的方法。

一、基于Winsock控件的远程数据传输

(一) Winsock控件简介

Microsoft提供的Winsock控件,是ActiveX控件的一种。在VB中可以将其添加到工具箱中以便使用。在程序运行时,Winsock控件是不可见的,但通过对其属性、方法、事件的设置及应用可轻松地实现计算机间的远程连接,该控件为用户提供了访问TCP和UDP网络及其方便的途径,不需要了解低级Winsock API调用实现的细节。VB的Winsock控件内部几乎封装了所有的Internet协议,以类的形式提供了属性、方法、事件,使得程序得到了极大的简化。

Winsock控件的常用属性如表1。

(二)传输协议

在使用Winsock控件时,首先要考虑使用什么通信协议。可供选择的协议有传输控制协议(TCP)和用户数据报协议(UDP),都是位于传输层的协议、使用端口号来识别应用程序,区别在于连接的状态。TCP协议是一个基于连接的协议,在收发数据前必须建立连接,并且该连接可靠性强,使数据无差错地传输,适合有确认信息的、重要的、数据量大(如声音和图像)的文件。UDP协议是不与对方建立连接而是直接就把数据报发送过去。传输速度较快也较便宜,适用于少量数据传送、可靠性

要求不高的文件传输。本文中均选用TCP协议。

(三)远程数据传输系统软件设计

1、远程传输系统软件流程

软件在Visual Basic环境下开发,利用Winsock控件完成客户端与服务器端的相互通讯。

创建客户端程序时,必须知道服务器端的IP地址(RemoteHost属性)和服务器“侦听”的端口(RemotePort 属性)然后调用 Connect 方法请求与服务器连接。

创建服务器端程序时,必须设置一个收听端口(LocalPort属性)并调用Listen方法侦听端口,本论文中使用的IP地址为202.205.84.222,使用的端口号为2020。当客户端请求连接时就会发生ConnectionRequest事件。为了完成连接,可调用ConnectionRequest事件内的Accept方法与客户端进行连接。

连接建立后,双方就可以相互收发数据。通过调用 SendData方法完成数据发送。接收数据时会触发DataArrival事件,调用DataArrival事件内的 GetData方法获取数据。

2、服务器端程序设计

(1)服务器端窗体加载事件

利用Private Sub Form_Load()加载,并且设置本地

端口,打开侦听,获取并显示本地状态信息。

(2)与客户端的连接

客户端发出连接请求时,触发ConnectionRequest事件,并调用Accept方法完成连接。如果本地有连接,则断开,因为不能同时接受两组数据

(3)建立连接

利用socks.Accept requestID接收当前连接,并显示远程计算机名、客户端IP及远程端口名称等远程状态信息。

(4) 接收数据

当客户端发送的数据到达时,触发DataArrival事件,并调用GetData方法获取数据

(5)确认信息

当客户端数据发送完毕,触发SendComplete事件,服务器端会将发送的内容回发作为接收到数据的确认信息。

1、客户端程序设计

(1)客户端窗体加载事件

利用Private Sub Form_Load()加载,并且指定欲建立连接的服务器IP及端口名称,并随时侦测连接是否成功。

(2)客户端向服务器端发送连接请求

利用Private Sub sockcl_Connect()进行侦测,一旦成功连接,便向服务器发送客户端数据。

(3)服务器接收客户端发送的数据

当客户端端发送的数据到达时,触发DataArrival事件,并调用GetData方法获取数据。

(4)确认信息

二、实验结果及分析

(一)实验环境描述

实验中的客户端是远程数据采集系统,利用单片机作为主控制芯片,利用各种传感器采集现场数据,通过A/D转换送到单片机中。单片机通过串口与GPRS模块连接,实现与移动网的连接,再与Internet连接。

(二)实验结果及分析

实验只采用8路差分模拟输入的3路——AI 6、AI 7、AI 8,因为存在干扰,固前5路的数值还有一些误差。显示的数值不表示实际温度、湿度值,需经过转换,转换后与实际测量值进行比较,证实该方法传输数据的可

靠性。程序和整个系统均有待改进。

三、结束语

Winsock是编制各种C/S程序的利器,不仅很好地解决了分散的温度、湿度远程数据采集系统,并能有效可靠地进行传输,还能开发聊天程序、抢答系统[9]等。算法具有简单性,且易实现。

参考文献:

[1]叶纪听.基于VB编程实现网络文件数据传递的实现[J]. 电脑知识与技术,2014,22:5235-5239.

[2]陈萍,高腾,刘兆峰,高雪为,詹鹏飞.基于GPRS的热力管网监测软件设计[J].山东建筑大学学报,2011,04:403-406+410.

[3]曹淑华. VB编程实现微机的网络远程唤醒[J].现代电子技术,2010,14:61-63.

[4]陈立定,冯景辉,胥布工.远程环境在线监测系统的设计[J].同济大学学报(自然科学版),2010,11:1659-1663.endprint

猜你喜欢
服务器端控件调用
Linux环境下基于Socket的数据传输软件设计
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
基于系统调用的恶意软件检测技术研究
ASP.NET服务器端验证控件的使用
利用RFC技术实现SAP系统接口通信
网页防篡改中分布式文件同步复制系统
Spreadsheet控件在Delphi数据库系统中的编程与应用