在vb.net中运用多线程实现远程数据收集[图]_VB.net_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

在vb.net中运用多线程实现远程数据收集[图]

作者:黑客防线网安VB教程基地 来源:黑客防线网安VB教程基地 浏览次数:0

本篇关键词:数据收集远程实现
黑客防线网安网讯:  引言   在笔者参与的四川省重点污染源企业环境远程监控系统中,有一项非常重要的工作:将多达80台的远程DVS(视频服务器)的监测数据通过因特网传输,由上位机收集上来,写入SQL Serv...

  引言

   在笔者参与的四川省重点污染源企业环境远程监控系统中有一项非常重要的工作:将多达80台的远程DVS(视频服务器)的监测数据通过因特网传输由上位机收集上来,写入SQL Server 2005数据库中远程数据每隔一分钟发送一次实时数据如果数据在一分钟内传送不成功,那么DVS将认为网络已经断开,又要不断的发起新的连接。因此,上位机能不能及时的准确的收集、写入,是系统成败的关键。

  项目分析

   80多台远程DVS正在不间断的采集数据,在网络正常的情况下,会不间断的向上位机发送数据。如果采用传统的单线程结构,上位机接受连接请求,接收处理数据,将数据写入数据库,然后再接受新的连接请求,接收处理数据,……,这样,上位机程序异常繁忙,CPU利用率几乎将达100%。由于服务器不能迅速处理请求,DVS只好等待。

   更为重要的是,为了减少上位机发送响应连接的次数,设备采用的是长连接,即发送一次连接请求并得到响应后,发送数据时不再发送连接请求。因此,要求上位机能够保存客户端的Socket。

  为了避免这种情形发生。笔者采用了异步、多线程来处理。所谓异步,是程序调用一个方法后立即返回,总体而言,主线程与方法线程并行执行。而同步即程序执行一个方法,等该方法返回之后,继续往下走,本系统从功能上分成3个模块,即3个前后关联的线程:主线程、数据接收线程、存入数据库线程,它们异步执行。

  主线程

   主线程工作流程如图一所示。其主要功能是:初始化参数,如连接端口号、IP地址等,侦听连接请求,将传入的连接保留到TcpClient对象数组sockets,而这个数组sockets恰恰是我们后面线程中要用到的全局变量。 为了不使线程间争用这个数组变量,这里用到了VB.net提供的Monitor类,它提供同步对象的访问的机制。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-14706-1.html
网站维护教程更新时间:2012-04-03 01:12:48  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer