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

时间:2020-09-17 13:42:58 计算机毕业论文 我要投稿

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

  【摘 要】在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.

【基于VB6.0的Winsock控件的远程数据传输的方法】相关文章:

1.《基于情绪的道德判断》简介

2.远程研修趣事横生的工作总结

3.基于校本研究的商务英语的论文

4.戒烟的方法+戒烟的好处

5.安慰受伤的朋友的方法

6.中暑的急救方法

7.触电急救的方法

8.教学反思的方法

9.查询档案的方法