学校机房屏幕监控系统的设计与实现

学校机房屏幕监控系统的设计与实现

ID:22923387

大小:485.95 KB

页数:24页

时间:2018-11-01

上传者:U-991
学校机房屏幕监控系统的设计与实现_第1页
学校机房屏幕监控系统的设计与实现_第2页
学校机房屏幕监控系统的设计与实现_第3页
学校机房屏幕监控系统的设计与实现_第4页
学校机房屏幕监控系统的设计与实现_第5页
资源描述:

《学校机房屏幕监控系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

学校机房屏幕监控系统的设计与实现作者:王铅指导教师:徐冬(海南师范大学信息科学技术学院,海门,571158)摘要:本文介绍了屏幕监控系统的设计开发技术和思路。使用MFC网络编程技术和WinSockAH接口,系统采用C/S模式,基于TCP/IP协议进行通信,客户端主机(运行Client.exe的电脑)通过Winsock发送抓取并发送监控屏幕的指令,服务器端(运行Server,exe的电脑)接收客户端主机端传来的指令抓取屏幕,并将其转化为BMP数据流,发送给服务端并在服务端进行整合。使用这种方法能高质量并且实时的对客户端计算机屏幕进行监控。为了方便管理员对系统的管理,同时采用了ADO连接Access数据库的技术,来实现对远程主机的屏幕监控及服务器管理员的管理。关键词:屏幕监控;C/S结构;Socket套接字;MFC编程;ADO;数据库ThedesignandimplementationoftheschoolcomputerroomscreenmonitoringsystemAuthor:WangQianTutor:XuDong(DepartmentofComputerScienceandTechnology,SchoolofInformationScienceandTechnology,HaiNanNormalUniversity,HaiKou,571158)Abstract:Thispaperintroducestheschoolcomputerroomscreenmonitoringsystem’sdesignanddevelopmentoftechnologyandthetrainofthought.ItusestheMFCnetworkprogrammingtechnology,theWinSockAPIinterfaceandtheUSESscreenmonitoring.ThescreenmonitoringsystemcommunicatesbasedontheTCP/IPprotocol.Completethedevelopmentanddesignoftheschoolroomscreenmonitoringsystem.Theclienthost(thecomputerthatrunstheClient.Exe)grabsandsendsthemonitorscreen’scommand,andthentheServer(computerrunningServer.Exe)receivesthecommandsofcapturescreeninstructionsthatcomesfromtheClienthost,andtransformsitintoBMPdataflow,andsendstotheServerandintegratesanddisplayontheServer.Thismethodcanmonitortheclientcomputerscreeneffectively.Inordertofacilitatetheadministratortomanagethesystem,itusesthetechnologythatADOconnectstheAccessdatabasetorealizetotheremotehostscreenmonitoringandmanagementofserveradministrator.Keywords:ScreenMonitoring;ThestructureofC/S;TheMFCnetworkprogrammingtechnology;ADO;DataBase 第一章绪论1.1研宄背景由于计算机技术的高速发展,带来了办公、教学、工业生产等环境越来越高的现代化程度,普及范围比原来更加广泛。现代化设施带来的高效率、高便捷的同时,也潜在极大的风险。因此,实时监控的系统显得越来越重要。尤其在学校机房中,更有效的利用监控系统来监督学生在上课时对客户端机器的操作。如今社会,学生如何正确使用机房的电脑以及在上课时如何使用网络困扰着很多老师,将学校网络接入因特网意义的具大己经成为不辨的事实,但同时也产生许多令人头疼的问题:许多学生在上机课的时候使用手机上网,或通过聊天软件和朋友聊天,或看一些与学习没有关系的网站,学习根本谈不上效率;在有些公司,员工把公司当作网络会所使用,工作效率不仅很低,有时甚至于会把公司的机密泄露给敌对的公司。为了避免这些情况发生,并且更有效地监测局域网计算机、局域网的计算机用户,以满足各种不同需耍的工作条件,因此,一个监控系统显得尤为的重耍。同时因为MFC具有强大的可视化编程功能,以及丰富网络函数,所以我选择有MFC作为屏幕监控软件的开发工具。1.2远程监控的发展及其前景在开始时,使用远程控制软件是允许计算机用户当他们离开旁边的计算机可以访问他们的台式计算机的硬盘信息,你甚至可以通过他们的桌面计算机访问公司网络资源。但是现在,很多企业和软件开发商把远程控制和监测能力的一种有效的技术支持工具。很多网络管理员和机房教师机都采用这类软件对局域网进行管理和监控。远程控制远程计算机监控软件在教学和训练中的也大作用使不同地点的学生和教师在真正的时间,使不同地点的学生能够与老师进行实吋交流。近年来,越来越复杂的黑客技术,给网络安全带来成巨大的威胁。受黑客攻击的主要手段之一就是使用远程控制和监测技术,渗透到对方的主机系统,使目标主机被远程操作。破坏力之大,是难以想象的。网络技术的发展越来越多地成熟、网络速度更快,在家办公将成为未来主流,使用远程技术将会更广泛。发展远程教育和培训也将迅速发展,企业的规模将逐步扩大。所有这些发展都为计算机远程提供了一个广阔的天地。1.3远程监控的现状和现有技术由于计算机网络的高速发展,现有的远程监控控制软件有很多,如灰鸽子这款远 第一章绪论1.1研宄背景由于计算机技术的高速发展,带来了办公、教学、工业生产等环境越来越高的现代化程度,普及范围比原来更加广泛。现代化设施带来的高效率、高便捷的同时,也潜在极大的风险。因此,实时监控的系统显得越来越重要。尤其在学校机房中,更有效的利用监控系统来监督学生在上课时对客户端机器的操作。如今社会,学生如何正确使用机房的电脑以及在上课时如何使用网络困扰着很多老师,将学校网络接入因特网意义的具大己经成为不辨的事实,但同时也产生许多令人头疼的问题:许多学生在上机课的时候使用手机上网,或通过聊天软件和朋友聊天,或看一些与学习没有关系的网站,学习根本谈不上效率;在有些公司,员工把公司当作网络会所使用,工作效率不仅很低,有时甚至于会把公司的机密泄露给敌对的公司。为了避免这些情况发生,并且更有效地监测局域网计算机、局域网的计算机用户,以满足各种不同需耍的工作条件,因此,一个监控系统显得尤为的重耍。同时因为MFC具有强大的可视化编程功能,以及丰富网络函数,所以我选择有MFC作为屏幕监控软件的开发工具。1.2远程监控的发展及其前景在开始时,使用远程控制软件是允许计算机用户当他们离开旁边的计算机可以访问他们的台式计算机的硬盘信息,你甚至可以通过他们的桌面计算机访问公司网络资源。但是现在,很多企业和软件开发商把远程控制和监测能力的一种有效的技术支持工具。很多网络管理员和机房教师机都采用这类软件对局域网进行管理和监控。远程控制远程计算机监控软件在教学和训练中的也大作用使不同地点的学生和教师在真正的时间,使不同地点的学生能够与老师进行实吋交流。近年来,越来越复杂的黑客技术,给网络安全带来成巨大的威胁。受黑客攻击的主要手段之一就是使用远程控制和监测技术,渗透到对方的主机系统,使目标主机被远程操作。破坏力之大,是难以想象的。网络技术的发展越来越多地成熟、网络速度更快,在家办公将成为未来主流,使用远程技术将会更广泛。发展远程教育和培训也将迅速发展,企业的规模将逐步扩大。所有这些发展都为计算机远程提供了一个广阔的天地。1.3远程监控的现状和现有技术由于计算机网络的高速发展,现有的远程监控控制软件有很多,如灰鸽子这款远 程控制软件,可以对对被控机器进行:管理文件访问,系统的信息,请参阅剪贴板,服务管理,流程管理,键盘记录器,窗口管理,共享管理,MS-Dosshell,提供代理服务,编辑注册表,启动telnet服务,捕获屏幕,视音频监控,发送音频,卸载灰鸽子……即是说,本地的用户能够看到的这些信息,使用灰鸽子远程监测软件通过某种手段也能看到。还有其他类似软件比如:Netfinity5.x+LCCM2.51,引起广大用户反响的国A软件YAI等,都是功能强大的远程控制监控软件。第二章需求分析2.1需求分析网络监控系统己在安防监控,过程监控,居民区等领域监控被广泛使用。学校虽然有些监控系统,但是局域网监控只是局限于控制学生电脑,不能对屏幕进行有效的实时监控,木系统针对学校监控的不足进行补充完善,以利于教师对学生的学习更有效的监督。2.2功能简介本系统的功能是,客户端主机通过运行Client.exe来采集本机的屏幕信息,并发送到服务端主机上,从而服务端管理员可以清楚地看到某台客广端机器的操作。服务端的主要功能是,负责收集和整理客户端发来的数据报信息,并显示到指定的区域,以来实时监控客户端的操作。另外,该系统添加了管理用户的模块,在该模块中,有权限的用户可以根据需要添加、删除或修改用户密码的功能。在系统设罝模块,是根据需要设罝要监控客户端主机的IP地址。2.3开发屏幕监控系统的环境软件开发环境:Windows7,VC++6.0,ACCESSS2003。硬件环境:AMDAthlon(tm)IIP340Dual-CoreProcessor2.2GHz:。内存:5.00GB。系统类型:64位操作系统磁盘空间:512MB以上。软件设计环境:中文版的Windows7操作系统。 2.4使用的相关技术2.4.1WindowsAPIAPI是Win32应用程序的接口,简称为Win32API,用来编写与Windows操作系统相关的程序的编程接口,是由一组动态链接厍函数和子程序组成,通过它你可以访问操作系统的各种功能。网络编程技术是屏幕监控在设计时使用的主要技术之一。在Windows操作系统环境下,应用程序通过编程接口(API)访问TCP/IP协议族的应用程序编程被称之为WinSockAPL,使用WinsockAPI提供的一系列的系统函数的调用,可以实现UDP、ICMP、TCP和IP等多种网络协议之间的通信;它采用客户端/服务器的通信原理,通过Socket接口的网络客户端和服务规则,以完成各自的Socket套接字匹配。建立客户端和服务器之间的通信通道,以便实现管理网络连接,并可以交换数据和文件传输。Socket是网络通信的基础,是支持TCP/IP协议族中网络流量的基本操作单元;端点套接字可视为不同的主机进程进行双向通信;套接字是通信的一端,在这方面,你可以找到一个名称与相应的;一个正在被使用的套接口都有它的类型和与其相关的进程;套接字的存在于通信领域中。2.4.2MFC编程技术MFC又称C++的图形化界面语言,是MicrosoftFoundationClasses简称。是微软公司提供编程者的一个C++类库,主要是封装了大部分WindowsAPI函数,用于底层Windows程序的开发。它的集成开发环境是VC++。Microsoft基础矣库(MicrosoftFoundationClasses)和VCL类似,是一种应用程序框架,与VisualC++微软的开发工只,MFC函数也是越来越完善。目前的最新版木号为10.0(发布时间为2011年3月),并且还发布了中文版,对中国人的学习也越来越方便。该类库提供一系列通用的可重用的类库供开发人员进行编程,MFC中的大部分类均是从CObject直接或间接派生出来的,只有少部分类不是。MFC应用程序的整体体结构通常由程序员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)两部分组成。MFC提供的Windows应用程序中的框架应用程序向导自动生成,MFC的主要包含文件的Afxwinoh,加上在MFC部分的类的MFC/ATL,可以在Win32应用程序中单独含和使用这些类。因为它是非常容易使用的,初学者常误以为使用VC++开发软件必须使用MFC,这种想法是错误的。作为应用程序框架,MFC使用仅提高幵发效率在某些情况下,只能起到辅助作用,但不是能取代的Win32程序设计。 2.4.1TCP/IP网络协议简介TPC/IP是TransmissionControlProtocol/InternetProtocol的简写,是Internet最基本的协议,它是Internet国际互联网络的基础,它主要包括网络层的IP协议和传输层的TCP协议。如何电子连接到互联网的设备,以及如何在它们之间的数据传输是通过TCP/IP协议来确定。协议层次四层,每层需要它来完成自己的需求提供第二层协议。简而言之:是负责传输发现的问题,如果有信号的问题,需要重新传输,直到所有的数据传送到目的地的安全和正确。2.4.2ADO技术简介ADO是ActiveXDataObjects的简称,是Microsoft提出的•一个应用程序接口(API),用以访问关系或非关系数据库中的数据。ADO是一个数据接口从原始Microsoft远程数据对象(RDO)演变来的。RDO和ODBC(开放式数据库连接)一起访问关系数据库,但没冇访问ISAM和VSAM的非关系型数据库。ADO是当前的Microsoft支持的最奋效和最简单和最直接的方法数据库的操作,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到ActiveServer页面上。您可以使用ADO来编写一个脚本来压缩连接到开放式数据库连接(ODBC)兼容的数据库和OLEDB兼容的数据源,这样ASP程序员就可以访问任何与ODBC兼容的数据库,包括MSSQLSERVER、Access、Oracle等等。第三章系统设计3.1总体设计本系统采用的是C/S结构,客户端负责采集客户端主机的屏幕信息并发送到服务端。与之对应的,服务端负责收集客户端发来的图片信息和对系统的管理。3.1.1客户端的总体设计客户端主要采集客户端屏幕信息,因此没有界面的设计。客户端的设计用了Winsock套接字网络编程并定义通讯端口为5001。在客户端包括了一个nWinsock2.hn头文件和一个Ws2_32.1ib库文件,进行初始化网络库函数,以便以后的网络编程。3.1.2服务端的总体设计服务端主要负责收集客户端发送过来的数据报并进行整合显示到服务端的规定界面中,如图1: tt局s网監控系n务器|1服务端显示为了防止非法用的登录,设计了登录界而,这有拥有账号和密码的人才能登录系统,登录界而如图2:系统登录I:J用户名称perry用户密码***取消登录2登录界面3.1.2数据库的总体设计本系统的设计重点不是数据库,但是为了方便对系统以及客户端的用户管理,采用Access数据库來存储和管理数据。数据的表如图3: jtbjSlientlnfo:表ClientIP►|l92.168.138.lH来3数据库数据表里的数据如不:Tb_ClientInfo表来存储运行客户端主机的IP地址。图4客户端IPJtbJJserlnfo:表UserNamePassword|►1231wq12Tb.Userlnfo表用来存储管理员的用户名和密码。图5管理员信息3.2详细设计3.2.1系统功能介绍机房屏幕监控系统由两个子系统组成:服务端系统和客户机系统。服务端系统安装在教师使用的计算机上,用于实施各种对学生使用机器的监控操作;客户机系统安装在每台学生使用的计算机上,客户端应用程序启动后作为一个进程运行,不显示界面,不影响学生机的其他操作,只是负责收集和并向发送学生机屏幕的信息,并根据 管理在服务器的操作,及时对学生机的相应数据返回给服务器。3.2.2Winsock通信技术Winsock是最基本的网络编程技术,有着自己独特的通信模型I胀労3.2.3TCP/IP网络协议TCP/TP协议的网络通信操作的基本单位是一对socket,是网络通信的基础;套接字是终结点之间的不同主机的双向通信,构成单一主机与网络之间的编程接U。要进行网络进行通信,至少需要一对套接字。一个在客户机端运行,另一个在服务器端运行,根据连接启动的方式以及本地套接字要连接的B标,套接字的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。(1)服务器监听:在服务器套接字未定位特定的客户端套接字,但在连接的网络 状态实时监测的等待状态。(1)客户端请求:是指由客户端的套接字提出连接请求,要连接的B标是服务器端的套接字。为此,必须首先描述客户端套接字服务器的连接套接字服务器端套接字地址和端口,然后连接请求到服务器端套接字。(2)连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。服务器端套接字继续听,继续接收的其他客户端套接字的连接请求。套接字可以根据通信的类型分类,不同的套接字之间也可以互相通信;一般应用于程序的套接字可分为两类:(1)流套接字:基于TCP/IP传输层,提供二程上没有记录边界的数据流服务,数据的传输有序,无重复,适用于大量数据的处理;面向连接的,之前的数据交换通信双方,必须建立一个路径来定义的通信路由,以确保双方都活跃,给对方回应。(2)数据报套接字:数据报套接字未连接、直接建在IP层,可以支持双向数据流量,但不是能保证订单数据传输的可靠性和非重复性。第四章系统的实现4.1客户端的实现要进行网络通信,必须需要在程序中添加网络函数,因此程序要括"Winsock2.h"头文件和〃Ws2_32.lib"库文件。为了方便修改服务端的IP地址,需要建立一个ini文件来保存服务端的IP地址。Sever,ini的内容如下:Server.ini-记事本文件(B賴(£)格式(Q)童看巧"[Serverlnfo]IP二"192.168.138.6"图7配置文件其读取代码为:m_ServerIP=〃〃;GetPrivateProfileString("Serverlnfo","IP","NULL",mServerlP.GetBuffer(0),MAX_PATH,/Server,ini");//ini文件的读取网络库函数在使用之前,要进行初始化,其初始化代码为:WSADATAdata; WSAStartup(2,&data);//网络函数的初始化在Client,exe结束时需要用WSACleanupO函数来清理网络资源,以防下次使用的时候会出现错误。套接字的创建于绑定的代码如下://获取本机的IP地址charhnamc[MAXPATH];mcmsct(hnamc,0,MAXPATH);gcthostnamc(hnamc,MAX_PATII);hostent氺phost=gethostbyname(〃〃);char氺locallP=inctntoa(氺(structinaddr氺)氺phost一〉haddrlist);sockaddr_inaddr;addr.sinfamily=AFINET;addr.sinaddr.Sun.Saddr=inctaddr(locallP);addr.sin_port=htons(5001);//绑定预定的5001端口//创建套接字mSocket=socket(AFINET,SOCKDGRAM,0);if(m_Sockct==INVALID_S0CKET){MessageBox("创建套接字失败!");}char*len="512〃;//发送缓冲区大小if(sctsockopt(m_Sockct,S0L_S0CKET,S0_SNDBUF,len,4)!=0){MessagcBox("设置失败!〃);//绑定套接字 if(bind(m_Sockct,(sockaddr*)&addr,sizcof(addr))==SOCKET_ERROR)MessagcBox("绑定套接字失败!");mScrvcrIP=〃〃;GctPrivatcProfilcString(^ServerInfo,z,’’IP”,’’NULL'mScrvcrIP.GctBuffer(0),MAX一PATTI,./Server,ini");//读取sever,ini文件WSAAsyncSclcct(mSocket,m_hWnd,CM.RECEIVED,FD_READ);mX=mY=0;mRccvX=mReevY=0;m_Confirm=TRUE;pSendBuf=newchar[1024*1024*2];//分配发送缓冲区大小pHeader=pSendBuf;m_Rcccivcd=FALSE;m_Countcr=0;向服务端发送数据的函数:intCClicntDlg::SendData(UINTindex,intmod,intbmpsize,intframes,char氺pSendBuf,sockaddr_in&addr)char氺pPackagc; intpacksizc=0;//初始化数据报大小//获取数据包大小A序号2位||结束标记2位||位图数据||位图数据大小4位||屏幕X坐标2位II屏幕Y坐标2位||数据报大小4位Vif(mod==0||index!=frames~l)packsizc=2+2+bmpsize+4+2+2+4;elsepacksizc=2+2+mod+4+2+2+4;//根据数据报的大小分配闪存pPackagc=newchar[packsizc];memset(pPackagc,0,packsizc);//填充数据报*(W0RD*)&pPackagc[0]=index;//给数据报填充序号if(index!=frames~l)//给数据报填充结束标记*(W0RD*)&pPackage[2]=0;else*(W0RD*)&pPackage[2]=1;//填充位图数据pScndBuf+=bmpsizc*indcx;mcmcpy(&pPackage[4],pSendBuf,packsizc-16);//填充位图大小水(int*)i&pPackagc[packsizc一12]=bmpsizc;//填充屏幕X坐标*(WORD*)&pPackage[packsize~8]=m_X; //填充屏幕Y坐标*(WORD*)&pPackagc[packsize-6]=m_Y;//填充数据报大小*(int*)&pPackagc[packsizc-4]=packsizc;mConfirm=FALSE;intretscndto(m_Sockct,pPackagc,packsizc,0,(sockaddr*)&addr,sizcof(addr));delete[]pPackagc;returnret;}从服务端接受确认信息的函数:voidCClicntDlg::OnRcccivcd(){char氺pData=newchar[1024];memset(pData,0,1024);sockaddr_inaddr;intfactsizc=sizcof(sockaddr);intretrccvfrom(mSocket,pData,1024,0,(sockaddr氺)&addr,&factsizc);if(ret!=-1)//读取控制指令 if(ret==4)//方向{m_RecvX=*(WORD*)&pData[0];m_RecvY=*(W0RD*)&pData[2];}elseif(rct==8)//服务器的确认信息{m_Rcccivcd=TRUE;mFramclndcx+=1;if(m_FramcIndcxConncctionString=m_ConncctStr.AllocSysStringO;m_pConncct->Opcn””、””、-1);}catch(_com_error&err){MessageBox("数据库初始化失败","提示");returnFALSE;}returnTRUE;}登录按钮单击事件处理,所使用的数据表是:tbUscrlnfovoidCLogin::0nLogin()CStringuser,password;//获取编辑框里的用户名和密码 m_UscrNanic>GctWindowTcxt(user);m_Password.GctWindowTcxt(password);//判断用户名和密码是否为空if(user.IsEmpty()||password.IsEmpty()){MessageBoxC用户名或密码不能为空","提示");mJJserName.SctFocusO;//把光标的焦点设置到用户名编辑框}else//当用户名和密码不为空时,遍历数据库数据匹对用户名和密码^ParamctcrPtrpuscr,ppassword;CScrvcrApp*pApp=(CScrvcrApp*)AfxGctAppO;//创建参数puscr=pApp->mDataManagc.m_pCommand->CrcatcParamctcr(,zuscr,z,adVarWChar,adParamlnput,100,(_bstr_t)user);ppassword=pApp->m_DataManagc.mpComniand->CreateParameter("password",adVarWChar,adParamlnput,100,(bstr_t)password);//添加参数pApp->m_DataManagc>mpConncct->CursorLocation=adUscScrvcr;pApp->m_DataManagc.mpCommand->ActivcConncction=pApp->m_DataManagc.mpConnect;pApp->mDataManagc.m_pCommand->Paramctcrs->Appcnd(puscr);pApp->mDataManagc-m_pCommand->Paramctcrs->Appcnd(ppassword);pApp->mDataManagc.mpCominancI->CommanclTcxt=’’select氺from tb_uscrlnfowhereusername=@uscrandpassword=©password";^RccordsctPtrpRccord=NULL;pRccord=pApp->m_DataManagc.mpCommand->Exccutc(0,NULL,adCmdTcxt);pApp->m_DataManagc.m_pCommand->Paramctcrs->Dclctc(^uscr^);pApp->mDataManagc.mpCommand->Paramctcrs->Dclctc(,zpassword,z);if(pRecord!=NULL){try//判断是否能够读取数据{CStringstr=(char*)(bstr_t)pRccord->GctFiclds()->GctItcm(〃UserName〃)->Value;pRecord->Closc();}catch(…){MessagcBox("用户名或密码不正确");m_UscrNamc-SctFocus();pRecord->Closc();return;}EndDialog(IDOK);elsepRccord->Closc(); MessagcBox("用户名或密码不正确");mUserName.SctFocus();}用户管理所使用的数据表是tbJJserlnfo,添加的类为COprManage,该类的操下:■3瘓作员官理UZI戸操作员信息用户名称(Edit添加用户密码|木木木木修改确认密码|木木木木刪除1::添加功能的相关代码如不:voidCOprManagc::OnBtAdd()CStringuser,pass,confirm;mUser.GctWindowTcxt(user);m_Pass>GctWindowTcxt(pass);mConfirmlnfo.GctWindowTcxt(confirm); //判断操作员信息是否为空if(user.IsEmpty()||pass.IsEmpty()||confirm.IsEmpty()){MessageBoxC用户名或密码信息不能为空!","提示");m_Uscr>SctFocus();return;}//验证密码if(pass!=confirm){McssageBoxC两次密码不同!","提示");return;}//验证用户是否存在CScrvcrApp*pApp=(CScrvcrApp*)AfxGctAppO;CStringsql;sql.Format("select氺fromtb_userlnfowhereusername=’%s’",user);pApp->mDataManagc.m_pRccord->CursorLocation=adUscScrvcr;pApp->mDataManagc.mpRccord->Opcn((bstr_t)sql,pApp->mDataManagc.m_pConncct>GctlntcrfaccPtr(),adOpcnKcysct,adLockOptimistic,adCmdTcxt);if(pApp->mDataManagc.m_pRccord->RccordCount>0)pApp->m_DataManagc.mpRccord->Closc();MessagcBox("该用户己存在,请选择其他用户名","提示");}else//向tbJJserlnfo数据表中插入数据 {pApp->m_DataManagc.m_pRccord->Closc();valuessql.Format("insertintotbuscrlnfo(’%s’,’%s’)”,user,pass);trypApp->m_DataManagc.mpConncct->Exccutc((bstr_t)sql,NULL,-1);MessageBox("添加成功成功","提示");ClcarTcxt();//清空编辑框文本内容LoadOperatorlnfoO;//刷新数据表中的信息}catch(…){MessageBox(〃添加失败〃);第五章结束语在整个系统设计开发过程中,刚选择题目的时候,由于自己没有实际网络应用系统的开发经验,不知道该如何下手,对系统所需求的技术也了解的不够深入,于是自己不得不从基础开始研究网络通信技术,经过自己不断的努力,逐步了解并掌握了基木的通信原理,并对WinsockAPI有了更深入的了解。在我们平时的生活和学习中,总感觉自己懂得了很多的东丙,说起来也头头是道的。但是在此次毕业设计中,等到需要用到的时候才明白:光说不练解决不了实际问题。自己要学习的东丙有太多,自己不明白的也太多。真正的意识到理论和实践之间差距,把自己学的东丙应用到实际中是一种质的升华。毕业设计不仅仅是对自己过去所学知识的一种检测,也有利于提高自己的实际运 用能力,同时还培养了自己分析问题、查询资料来解决问题的能力。在整个设计过程中,我遇到不懂的问题就赶紧查阅相关资料、到M上去寻找类似答案,从这些资料和答案中筛选出自己所需要的内容,同时也虚心向周围同学求教,不断积累知识和经验;学会及时的总结,及时发现问题并及时给予改正。因此我感觉整个毕业设计过程中学到不少知识。总之,我们学的知识只要能应用到实践过程中就能体现它的真正价值和意义!有时候,我们认为有些东丙已经学会了,但其实只是空理论,不能解决实际问题,没有理解其真正价值和作用,所以只有把学的东两应用到实际生活中才是真正意义上的学会,学懂。 参考文献1,费仁元,王民,徐洪安,徐小力.孙宏书.基于C/S模式的企业局域网监控系统.北京工业大学学报,[2004年6月第30卷第2期]2,刘波,文志强,谭荣椿.基于MFC的局域网监控系统的设计与实现.福建电脑,[2100年第8期]3,林粵伟,魏权利,李丽萍,姚军光.基于VC++的局域网监控软件的研制.计算机时代,[2005年第4期14,高照恒,陈家琪.基于WinSock通信的屏幕监控系统.计算机系统应用,[2011年第20卷第3期]5,朱东辉.基于WinSock通信的远程屏幕抓取方法与实现.计算机应用研究,[2005]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭