2017毕业论文-基于C++的局域网软件监控系统设计.doc_第1页
2017毕业论文-基于C++的局域网软件监控系统设计.doc_第2页
2017毕业论文-基于C++的局域网软件监控系统设计.doc_第3页
2017毕业论文-基于C++的局域网软件监控系统设计.doc_第4页
2017毕业论文-基于C++的局域网软件监控系统设计.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东科技大学学士学位论文 摘要 1 摘要摘要 局域网监控系统是通过获取被控端的系统信息,实现可靠、实用、方便、高效的计 算机安全管理系统。它主要应用远程监控技术对局域网内的计算机运行状态进行监控。 通过获取被控端计算机实时的运行信息,局域网管理者可以在控制端查看任意一台局域 网内被控端计算机的使用情况,随时监视局域网内计算机流量的运转状况,实现对局域 网监控管理。 本文首先介绍了网络软件运行监控系统的背景和研究范围,以及研究的目的及意义。 概述了局域网监控系统开发中所应用到的关键技术:socket的网络编程技术,并在此基 础上提出了局域网软件运行监控系统的总体框架和设计。本系统将对服务器端屏幕进行 截取,并将屏幕信息传送给客户端,本系统采用面向对象的设计方法设计,最后对局域 网监控系统的监控端和被控端的各个模块的具体实现进行了详细阐述。被控端的主要模 块有:系统信息获取模块。系统状态信息获取有三个功能分区:屏幕信息的获取、端口 的打开、发送屏幕信息三个小模块。控制端主要的模块有:系统连接模块、被控端桌面 信息获取模块、桌面信息保存模块、局域网内部流量监测模块。 关键字关键字:局域网;VC+;桌面捕捉;流量监测 山东科技大学学士学位论文 摘要 1 AbstractAbstract LAN monitoring system is accused by getting the system information and obtain reliable, practical and convenient, efficient computer security management system. It is mainly used for remote monitoring technique wlan computer running state monitor. By getting accused of running the real-time information, computer control side managers can in LAN LAN check any one accused of end the use of computers in LAN, computer monitor at any time, to realize the flow of operation condition of the LAN monitoring management. This paper firstly introduces the network software running monitoring system of background and research scope, and the purpose of the research and significance, summarizes the LAN monitoring system used to develop the key technology: the network programming technology socket, and proposed in this foundation the LAN software running monitoring system design and the overall framework. This system will server on the screen, and will only screen interception of sending control terminals, this system USES object-oriented design method of local area network design, final monitoring and control system of monitoring terminal and accused the concrete realization the modules are expatiated. The main module has accused state information acquisition module system. The system state information acquisition has three modules: the screen information acquisition, port open, send screen information module. The main module control side: the system connecting module, are accused of end desktop information acquisition module, desktop information preservation module, LAN internal flow monitoring module. Key word: LAN; VC + +; Desktop capture; Flow monitoring 山东科技大学学士学位论文 目录 1 目录目录 1 1 绪论绪论1 1 1.1 课题研究背景.1 1.2 研究范围及技术要求.3 1.3 套接字相关概念.4 1.4 局域网软件监控系统设计的目的和意义.5 1.5 论文组织结构.6 2 2 系统设计系统设计1 1 2.1 需求分析.1 2.2 可行性分析.1 2.3 设计目标.2 2.4 系统功能结构.2 2.5 用户界面.2 2.6 程序流程图.4 2.7 系统运行环境.5 3 3 系统详细设计系统详细设计1 1 3.1 被控端模块设计.1 3.2 系统连接模块设计.3 3.3 桌面捕捉模块设计.7 3.4 桌面图片保存模块设计12 3.5 局域网流量监控模块设计15 4 4 总结和展望总结和展望1 1 致谢致谢3434 参考文献参考文献3535 山东科技大学学士学位论文 绪论 1 1 1 绪论绪论 1.11.1 课题研究背景课题研究背景 Internet 在我国刚刚起步时,上网人群主要是从事 IT 技术的专业人员,年龄段多是中 年人,随着我国科技的发展,随着互联网的迅速普及和完善,网络涉及到我们日常生活 的方方面面。越来越多的家庭和企业通过互联网来进行交流和沟通,给我们的生活带来 了很多的方便。但是也存在这很多不良的信息危害青少年的健康,影响员工的日常工作。 影响了孩子的身心健康,降低了员工的工作效率。局域网软件运行监控系统可以通过桌 面捕捉和流量监控的方式来监督局域网中计算机的动态。 局域网软件运行监控系统是通过获取被控端的桌面信息,实现可靠、实用、方便、 高效的计算机安全管理系统。它主要应用远程监控技术对局域网内的计算机运行状态进 行监控。通过获取被控端计算机实时的运行信息,局域网管理者可以在控制端查看任意 一台计算机内被控端计算机的流量使用情况,监控局域网内部计算机的桌面并对桌面进 行保存,实现对局域网内所操作的计算机的管理。 从目前的发展来看,很多公司为网络资源的合理利用伤脑筋,虽然公司有明文规定, 上班时间不得做与工作无关的事情;很多家长为孩子上网担心,怕他们访问不良网站, 接触不良信息。有效的控制网络的应用,对于家长和公司领导来说是一个很迫切的需求。 这些都为局域网软件运行监控系统提供了很好的市场和发展前景。 1 1、局域网软件运行监控系统的定义、局域网软件运行监控系统的定义 网络监控是指本地计算机系统通过网络(特别是 Intemet)对远端的控制系统进行监测 和控制。网络监控又叫远程监控,从字面意思理解,远程指不是近距离的,监控指的是 监测和控制。远程监控的又一解释是在网络上由一台计算机(主控端、客户端)远距离去 控制另一台计算机(被控端服务器端)的技术,这里的远程不是字面意思的远距离,一 般指通过网络控制远端电脑。网络监控是建立在现代的计算机网络技术、通信技术、控 制技术以及图形图像技术上的一个新的应用。它采用多元的信息传输、监控、管理和一 体化的集成,实现了信息、资源和任务的共享,达到了监控的实时、快速和高效,并能 够和其他的计算机网络进行互连,向人们提供了一个更高效、更全面、更安全、更便捷 的服务模式,改交了传统的监控模式。 仿真监控系统的技术指标有以下几个特性: (1)实时性,它的含义是指能够实时地反映现场设备的运行状况。 山东科技大学学士学位论文 绪论 2 (2)一致性,仿真监控系统的一致性体现在: 外观:主要指仿真的物体在外观上与原件相似,包括颜色、尺寸、样式等; 显示:数据的刷新与显示与现场一致; 感觉:操作的感觉与现场基本一致。 (3)可靠性和稳定性,监控系统在运行过程中应该可靠、稳定的运行。 网络监控系统属于仿真监控系统的一种,所以它除了应该具有仿真监控系统的以上 技术指标以外,由于网络监控系统还涉及到数据的大量传输,所以还应具有区别于其他 监控系统的特点,主要有以下两点: 数据传输的实时性; 数据传输的可靠性。 网络监控功能的实现一般采用客户机,服务器模式(ClientServer),由客户端和 服务器端两部分组成。服务器程序安放在被控制的计算机端,客户机程序安装在控制端。 在客户端和服务器端都安装成功之后,服务器端计算机提供服务,客户端在网络上可以 连接到服务器的远程计算机。 建立起连接,然后就可以通过网络的互联协议TCP进行远程控制。服务器端和客户端 是相对而言的。一个应用程序既可以是Server端,也可以是Client端。一般情况下,被 监控的计算机系统工作于服务器模式,监控者为客户端。客户端主要向服务器端发出获 取该端信息的请求并将从服务器端发送回来的信息在本地实时显示出来,或者向服务器 端发送控制指令。 2 2、局域网软件运行监控系统的发展现状和市场前景、局域网软件运行监控系统的发展现状和市场前景 计算机领域进行了一场又一场的技术革命,它给人们提供了高质量、高效率、低成 本的通信方式,使我们的生活进入信息化时代。在计算机发展的过程中,人们对计算机 的监控系统由最初的模拟监控发展到了现在的实时化和信息化。 目前,网络监控系统已经在各个方面得到了广泛的应用。网络监控因为可以远距离 监控远程设备受到广大民众的青睐,对局域网软件运行监控系统的研究也将会带来巨大 的经济效益。国内高校、软件公司、软件爱好者都开发了很多网络监控系统。局域网软 件运行监控系统的开发也为企业提供了很好的监控设施,提高了员工的工作效率,规范 了员工的工作行为,为企业提高了不少的经济效益。伴随着社会上各个部门对网络监控 的研究,网络监控软件进一步走向完善。在国内外市场上,主要推出的是数字控制的模 拟视频控制和数字视频控制两类产品。前者发展已经非常成熟、性能稳定,并在实际拨 山东科技大学学士学位论文 绪论 3 弄工作中得到了广泛的应用,特别是在大、中型视频监控功能的应用尤为广泛;后者是 新近崛起的以计算机技术以及图像视频压缩为核心的新型视频控制系统,该系统解决了 模拟系统部分弊端迅速崛起,但仍需进一步完善和发展。目前,视频控制系统正处在数 控模拟系统与数字系统混合应用并将逐渐向数字系统过渡的阶段。 早在 2003 年,美国管理协会(American Management Association)调查发现 75%的 被调查公司已经在对员工的网上行为进行监控。另据美国电子政策协会在今年的一项调 查显示,有 26%的企业借助网络监控系统监视员工,而且,已有 2%的员工因为不正当使 用即时通信系统被解雇。 韩国日报一篇报道称,韩国有 60的大企业、30的公营 企业会检查职员的电子邮件。 泰国某知名网站在去年的调查显示,有 40%的企业员工在 公司上网时受到公司监视。 员工监控软件正在变得越来越有吸引力,它们的价格越来越适中,使用也越来越简 单。企业意识到了这些监控软件的价值,它们有助于提高安全性,改进工作效率,减少 员工的不轨行为和竞争性信息的泄漏,降低法律责任风险。许多分析人士表示,目前考 虑使用监控软件最符合企业的利益。Jupiter Media Metrix 的研究主管 Michael Gartenberg 表示,如果企业选择使用监控软件的话,他们必须告诉员工企业在监控什么, 以及为什么要进行监控。 Gartenberg 说, “员工必须明白,雇主有权利保护公司的业务通 讯工具不被滥用,其中包括证明会使公司承担法律责任和给公司带来麻烦的情况”。 “雇主 也需要明白,需要设定和实现期望值,需要在员工的信任和不信任之间取得恰当的平衡”。 家庭办公、远程技术的流行、远程教学的发展、企业内部的管理等各领域的应用是 局域网软件运行监控系统的发展趋势和市场前景。随着企业的发展,公司规模原来越大。 不在同一个办公楼、不在同一个城市都成为很正常的现象,如何控制规范员工的工作行 为。现在很多企业在办公室内部设置了摄像头,但是摄像头的监控功能很难具体到电脑 桌面,看清楚员工具体在做什么,这样就无法从根本上具体化的管理每台计算机的具体 行为。局域网软件运行监控系统对可以监控到局域网内每台电脑的桌面,可以监控到局 域网内部每台电脑的流量。局域网软件监控系统解决了摄像头无法解决的细节问题,同 时也给其本身的发展带来很大的推动作用。 1.21.2 研究范围及技术要求研究范围及技术要求 1 1、研究范围、研究范围 1.设计系统的功能模块划分。 山东科技大学学士学位论文 绪论 4 2.参考局域网软件运行监控系统的实例,并根据具体要求,实现本次系统设计的需 求分析。 3.根据需求分析和模块划分完成代码功能实现。 4.总结文档的编写。 2 2、技术要求、技术要求 1.对系统功能模块进行合理的划分,模块清晰明了。 2.成功的连接客户端和服务器端,实现双方信息的传送。 3.捕获服务器端的屏幕信息,并通过通信发送到客户端。 4.对捕获信息进行保存,方便以后查阅。 5.局域网内部计算机的流量实时监控。 1.31.3 套接字套接字相关概念相关概念 1 1、套接字的基本概念、套接字的基本概念 套接字是通信的基石,是支持TCPlP协议的网络通信的基本操作单元。将套接字看 作不同主机间的进程进行双向通信的端点,它构成了单个主机内及整个网络间的编程界 面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一 种抽象概念。套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限, 但这时一定要执行某种解释程序)。各种进程使用这个相同的域互相之闻用Internet协议 簇来进行通信。套接字可以根据通信性质分类,这种性质对于用户是可见的。应用程序 一般仅在同一类的套接字间进行通信。不过只要底层的通信协议允许,不同类型的套接 字闻也照样可以通信。套接字有两种不同的类型:流套接字和数据报套接字。 2 2、套接宇的工作原理、套接宇的工作原理 要通过网络进行通信,你至少需要一对套接字。其中一个运行于客户机端,另一个 运行于服务器端,根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连 接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听,是服 务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络 状态。 客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的 套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器 端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。 连接确认,是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求, 山东科技大学学士学位论文 绪论 5 它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户 端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态, 继续接收其他客户端套接字的连接请求。 1.41.4 局域网软件监控系统设计的目的和意义局域网软件监控系统设计的目的和意义 企业局域网监控软件、员工网络监控软件在今天也许变得越来越重要。企业为工作 用途建立的局域网平台不能沦为游戏、娱乐 、泄密的工具。局域网软件监控系统能够监 控每台员工的电脑流量,捕捉员工计算机桌面清楚明了知道员工在做什么。在精神上起 到一定的震慑和禁止作用。能从很大程度上控制员工打游戏,规范员工工作期间的工作 行为,只做与工作有关的事。计算机和互联网现已被许多企业应用,为企业带来了巨大 的经济效益。但同时也存在着不容忽视的一个问题是:企业的员工都用计算机来工作了 吗,还是占用上班时间来乱下载软件,玩游戏,或是聊天、上网?既浪费时间影响工作 效率,又影响计算机网络安全、有可能泄露企业商业秘密。在互联网为企业带来便利和 效率的同时,企业也正在受到意想不到的损失。如果没有员工监控软件,您知道您的员 工上班时间正在上网做些什么吗? 所以局域网软件运行监控系统为很多公司解决了这一 个难题。 很多家长担心孩子沉迷网络游戏,访问不良网站,影响孩子的身心健康。 局域网软 件运行监控系统的产生可以让家长随时看到孩子在做什么,为各位家长提供了一剂良好 的放心药。因此局域网软件运行监控系统是目前发展前景良好,实用性很强的一个软件 系统。同时,有利于我把实际学许到理论知识运用到实践中去,使我对理论知识有一个 更好的理解和进步。通过设计,不但提高了我们的动手能力,更能让我们把在实践中的 不足反馈到学习中去,从而为了更好的工作和生活而努力学习完善自我。 局域网软件运行系统的设计有一部分原因出自公司的需要。因为工作的需要公司很 大一部分员工都是通过计算机网络进行办公,虽然公司对员工如何使用计算机有明确的 规章制度,但是还是很难从根本上去杜绝上网聊天、打游戏、看电影的人存在。公司曾 经屏蔽了一些娱乐网站,但是不可能全部屏蔽掉,还会存在一些上班时间上网娱乐的现 象。如果给每个人只开通一些他们自己要用的网站也不现实。局域网软件运行监控系统 可以监控到局域网内部每台计算机的桌面,可以清楚明了的看到他在做什么事情 。同 时,这个局域网软件运行监控系统可以监测到整个局域网内部每台计算机的流量,可以 根据流量监测的结果去捕捉某台计算机的桌面。 山东科技大学学士学位论文 绪论 6 局域网软件运行监控系统设计的意义在于让我们在学校学习到的理论知识终于得到 了实际的应用,得到现实的升华;更让我们在设计的过程中了解到仅仅有理论知识是远 远不够的。人与人的相处,工作的技巧实际的应用。每一项都是让我感觉到了自己的缺 点和不足,促使我要更加努力的去学习去奋斗! 1.51.5 论文组织结构论文组织结构 本文共分为四章: 第一章:介绍了局域网软件运行监控系统的研究背景,技术范围和要求,以及系 统开发的意义与研究现状,概述了本文的研究内容; 第二章:介绍了系统开发的需求分析,系统开发的主要流程,套接字的基本概念 和工作原理; 第三章:本章主要介绍局域网软件运行监控系统实现的详细设计。其中包括:被 控端即服务器端得概述,技术分析,以及实现流程;系统连接模块的主要功能即控制端 和被控端的连接,也是本系统的关键一步;桌面屏幕捕捉模块介绍系统桌面屏幕捕捉的 主要概述,技术分析,以及主要的实现流程;屏幕位图保存模块主要介绍桌面屏幕的保 存技术;需要调用系统的文件对话框,把图片以位图的形式保存在计算机中,是在桌面 屏幕捕捉模块的基础上实现的;流量监控功能主要介绍局域网内部流量监测模块功能的 实现,主要涉及到局域网内部计算机通过 TCP/IP、UDP、ICMP 等协议传送数据报的监测; 第四章: 本章介绍了局域网软件运行监控系统的具体实现情况,设计过程中存在 的问题和不足,收获与得失以及对未来的展望。 山东科技大学学士学位论文 系统设计 1 2 2 系统设计系统设计 2.12.1 需求分析需求分析 局域网软件运行监控系统顾名思义就是实现对局域网的监控。本设计主要实现的功 能是对被控端计算机的计算机屏幕进行捕捉,对局域网内部流量进行实时监控。Socket 通信是一类典型的网络通信技术,是一种非常实用的编程方法,所以采用 socket 编程。 为了有目的的去监控捕捉计算机屏幕,特此对 TCP/IP、ICMP、UDP 等协议的数据包进行 捕捉,添加局域网内部流量监测模块,添加此模块的好处是可以根据流量监测结果对某 台流量异常的计算机进行屏幕捕捉。 2.22.2 可行性分析可行性分析 根据中华人民共和国公安部互联网安全保护技术措施规定第 8 条之规定:“互联 网接入单位应能够记录并留存用户使用的互联网网络地址和内部网络地址对应关系;记 录、跟踪网络运行状态,监测、记录网络安全事件等安全审计功能。 ”第十三条:“互联网 服务提供者和联网使用单位依照本规定落实的记录留存技术措施,应当具有至少保存六 十天记录备份的功能。 ”公司在工作场所安装、部署、使用监控软件是有法可依的。 技术方面的可行性分析。在当前的限制条件下,该系统的功能目标基本上可以实现, 而最大的约束是时间,因为我对这个课题不是很擅长,而且由于本人已经参与了工作, 允许我开发的时间很短。该系统没有怎么用到特别高深的技术,利用的是我在学校学习 的一些编程基础加上自我学习能力和努力。本人平时多请教老师和同学,天天在实验室 努力研究,经常与老师沟通交流。综合分析虽然这个程序对我来说难度很大,但是功能 也得到了基本的实现。当然程序在运行的过程中也存在一定的缺点和不足,如果有时间 我会尽量去修改和完善。 局域网软件运行监控系统开发的社会因素可行性。员工行为管理问题:员工若在网 上冲浪、聊天、玩游戏、甚至在看多媒体电影,浪费企业的资源,降低企业的运营效率。 中小学生上网问题:随着科技的发展,计算机互联网进入了千家万户,孩子上网问题也 成了家长关心的问题之一。任何企业的领导,每一个孩子的家长可能都遇到过这样的问 题。领导们希望通过现代的信息化管理技术来大力推动企业的发展,却由于信息化而带 来的一系列问题:计算机网络信息化管理并未能给予企业多大的效益,却带来了管理上 的漏洞,企业浪费了资源,所以企业的领导们希望能对此有所作为。家长们希望通过计 算机让孩子接触更多的事物,学会更多的知识,得到更好的发展,网上却存在着这样那 山东科技大学学士学位论文 系统设计 2 样的不良信息,时刻都有可能影响到孩子的身心健康。因此,这个系统的开发具有很大 的市场需求,具有开发的可行性。 从使用方面来讲,该系统软件具有界面清晰、操作简单等优点,任何具有计算机简 单操作能力的人员均能熟练操作。 经过以上的可行性分析,我们对此系统的市场、技术,时间和资源,人力方面的可 行性有了详细的描述,证明系统具有可开发的价值,以及其开发过程的可行性。 2.32.3 设计目标设计目标 本系统属于小型局域网的系统,可以依据 ip 对某台计算机进行屏幕捕捉监控并保存 捕捉图片,可以对局域网内部计算机流量进行实时的监控。本系统预计实现以下目标: 1. 系统采用人机交互的方式,界面美观友好。 2. 控制端可以随时运行,只要被控端的程序在运行,就可以捕捉到被控端屏幕。 3. 可以对被控端的屏幕进行保存,留待以后查证。 4. 运行网络流量监控功能,能够监控到整个局域网的流量。 2.42.4 系统功能结构系统功能结构 局域网软件运行监控系统功能如图所示: 图 2-1 局域网软件运行监控系统 局域网软件运行监控系统 控制端被控端 系统连接图片保存流量监控 通信端口设置 IP 设置 用户名、密码 主窗体 通信端口设置 山东科技大学学士学位论文 系统设计 3 2.52.5 用户界面用户界面 局域软件运行网监控系统分为控制端和被控端两部分,其中被控端运行时只需设置 通信端口,启动服务即可。控制端主要有两个窗体组成,分别为主窗体、局域网流量监 测窗体。其中,主窗体用于端口、ip、用户名、密码设置,连接成功后用于接收显示屏 幕信息,并存捕捉的屏幕信息。局域网流量监测窗体用户获取局域网内部每台计算机的 流量实时监控。 图 2-2 被控端主窗体 图 2-3 控制端主窗体 山东科技大学学士学位论文 系统设计 4 图 2-4 流量监测对话框 2.62.6 程程序流程图序流程图 山东科技大学学士学位论文 系统设计 5 系 统 连 接 连接成功连接成功 主窗体主窗体 屏幕捕捉屏幕捕捉 图片保存图片保存 流量监控流量监控 否 是 图 2-5 系统流程图 2.72.7 系统运行环境系统运行环境 局域网软件运行监控系统对运行环境有一定的要求,具体如下: 1、系统开发平台:Microsoft VC 6.0。 2、系统开发语言:C+。 3、运行平台:Windows XP 山东科技大学学士学位论文 系统详细设计 1 3 系统详细设计 3.13.1 被控端模块被控端模块设计设计 1 1、被控端模块概述、被控端模块概述 局域网软件运行监控系统分为控制端和被控端两大模块,其中,被控端的主要作用 是时时抓取本机的屏幕信息,将其分成多个数据报,发送到控制端。为了保证屏幕信息 能够完整的发送到控制端,被控端在发送一个数据报后,需要等待控制端发来的确认信 息,然后继续发送下一个数据报。 2 2、被控端技术分析、被控端技术分析 被控端如果要实现屏幕信息的发送,必须要解决两个关键问题:一是获取自己桌面 屏幕信息,将其转换为位图格式;二是将位图信息发送到控制端。 3 3、被控端实现过程、被控端实现过程 (1)首先新建一个 IDD_SREENSERVER_DIALOG 对话框,右击建立类向导命名为 CsreenServerDlg。在对话框中依次加入静态文本框、编辑框、按钮等三个控件并给予初 始化的定义。同时添加数据包,位图相关信息,其他成员函数以及成员变量的定义代码 如下: struct CapSreenHeader/图像头信息 long filelength;/定义位图文件长度 int width;/定义宽度 int height; /定义高度 int blocklen;/数据块长度 long factlen;/实际数据长度 HBITMAP hBitmap;/初始化位图信息 CListenSock* plisten;/定义监听指针 CClientSock* pclient;/定义 socket 类型的接口 (2)在 CsreenServerDlg 类的 OnInitDialog()成员函数中把需要的成员变量进行初 始化。具体代码见附录 3-1 (3)为开始服务按钮 IDC_BUTTON_START 添加消息响应函数 OnButtonStart(),开始 为控制端提供服务。具体代码如下: void CSreenServerDlg:OnButtonStart() /开始服务 CString name; 山东科技大学学士学位论文 系统详细设计 2 UpdateData(TRUE); GetDlgItemText(IDC_BUTTON_START,name); if(name=“开始服务“) plisten=new CListenSock; plisten-Create(m_tport); /创建等待客户端监听的 Socket,在本机的 3009 监听, plisten-setdlg(this); /点开始-程序-附件-命令提示符,打开一个终端窗口,输入命令 netstat -an 就可看到有没有打开端口 3009,也能看到所有的网络连接状态 SetDlgItemText(IDC_BUTTON_START,“停止服务“); /把按钮文字置为停止服务 else SetDlgItemText(IDC_BUTTON_START,“开始服务“); /把按钮文字置为开始服务 if(plisten!=NULL) plisten-Close();/关闭监听 delete plisten; if(pclient!=NULL) pclient-Close();/关闭与客户端通信端口 delete pclient; (4)获取本机桌面屏幕信息,并将屏幕信息转换为位图格式 HWND hWnd = :GetDesktopWindow();/获得屏幕的 HWND. HDC hScreenDC = :GetDC(hWnd); /获得屏幕的 HDC. HDC MemDC = :CreateCompatibleDC(hScreenDC);/定义一个内存的画布 MemDC RECT rect; :GetWindowRect(hWnd, /获取屏幕的客户区域 SIZE screensize; screensize.cx=rect.right-rect.left;/获取屏幕的宽度 screensize.cy=rect.bottom-rect.top; /获取屏幕的高度 hBitmap= :CreateCompatibleBitmap(hScreenDC,screensize.cx,screensize.cy); 山东科技大学学士学位论文 系统详细设计 3 /创建兼容位图 HGDIOBJ hOldBMP = :SelectObject(MemDC,hBitmap);/选中位图对象 :BitBlt(MemDC,0,0,screensize.cx,screensize.cy,hScreenDC,rect.left,rect.top,S RCCOPY);/将屏幕信息输出到位图 :SelectObject(MemDC,hOldBMP);/把位图写入内存 :DeleteObject(MemDC);/释放位图对象 :ReleaseDC(hWnd,hScreenDC); (5)添加消息响应函数 SendSreenToClient() /把获取的被控端信息发送到控制端。 void CSreenServerDlg:SendSreenToClient() if(pclient!=NULL /捕捉本机桌面 SentSreen(hBitmap,pclient); /把捕捉到的位图信息发送到客户端 3.23.2 系统连接模块设计系统连接模块设计 1 1、系统连接模块设计概述、系统连接模块设计概述 为了防止非法用户使用系统,在局域网软件允许监控系统的控制端增加了用户登录 这么一个小模块。在系统启动时,只有输入正确的用户名和密码才能进行被控端桌面的 捕捉。首先输入你想要监控的被控制端 ip,如果不输入则默认是 。本系统为 了运行方便于是把用户名和密码设置成了默认的,也可以是手动输入的。如果用户名和 密码输入错误或者是为空就会就会弹出一个提示框,提示用户名或密码错误请重新输入; 如果输入正确才会弹出一个提示框,提示登录成功。具体的图显示如下: 图 3-1 被控端连接失败 山东科技大学学士学位论文 系统详细设计 4 图 3-2 控制端登录成功 2 2、系统连接模块技术分析、系统连接模块技术分析 系统连接主要的技术要点分为两部分,一部分是输入 ip 与被控端计算机获得连接; 一部分是输入正确的用户名和密码。本系统是 sokcet 通信,通过 socket 端口进行通信。 在该模块一开始就定义了一个 socket 端口类型的指针 pclient=NULL,实例化一个 CclientSock 的一个类对象,创建一个 socket 接口,与被控端的 Connect()函数取得连 接。设置一个用户结构体来定义用户、密码以及端口。 系统通过一个函数发送客户端的请求到服务器端,通过服务器端请求,服务器端才 会给客户端提供需要的服务。在这个系统连接的模块中客户端通过 myRecvData(CClientSock *pc)函数和客户端去连接;服务器通过 myRecvData(CClientSock *pc)和 myAccept(CListenSock *pl)两个函数来为客服端来进 行连接。 3 3、系统连接模块实现过程、系统连接模块实现过程 (1)首先新建一个 CclientSock 类,并初始化成员变量和成员函数 CSreenClientDlg 类 中定义用户名、密码以及端口的相关信息。定义如下: class CclientSock public: int id; int bufoffset;/定义缓冲区 char *pkbuf;/缓冲区指针 int pklen;/块长度 int recvlen; /收到信息的大小 CSreenClientDlg *dlg;/声明类 CSreenClientDlg 指针 public: void SendCommandData(int type,char* buf,int len); void GetPackage(char *buf); void setdlg(CSreenClientDlg *d,int cid,int plen); 山东科技大学学士学位论文 系统详细设计 5 class CsreenClientDlg struct USERINFO/用户信息 char name30;/定义用户名 char password20;/定义密码 int uport;/定义通讯端口; void myRecvData(CClientSock *pc); CClientSock *pclient; USERINFO usrinfo;/用户信息 NETPACKAGE usrpack; (2)在主窗口添加按钮 IDC_BUTTON_CONNECT,右击属性改名为连接,并为按钮添加消息 响应函数 OnButtonConnect()。具体实现代码如下: void CSreenClientDlg:OnButtonConnect() /与被监控电脑相连接 / TODO: Add your control notification handler code here CString name; GetDlgItemText(IDC_BUTTON_CONNECT,name); UpdateData(TRUE); if(name=“连接“) pclient=new CClientSock; pclient-Create();/创建普通的 SOCKET pklen=sizeof(NETPACKAGE);/获取数据包的长度 pclient-setdlg(this,1,pklen); int rt=pclient-Connect(m_ip,m_port);/连接服务端 if(rt=1) strcpy(,m_usrname.GetBuffer(0); strcpy(usrinfo.password,m_usrpwd.GetBuffer(0); usrinfo.uport=3100; pclient-SendCommandData(1,(char*) else AfxMessageBox(“被控端连接失败!“); SetDlgItemText(IDC_BUTTON_CONNECT,“连接“); 山东科技大学学士学位论文 系统详细设计 6 else pclient-SendCommandData(2,(char*) pclient-Close(); delete pclient; pclient=NULL; if(m_pDib!=NULL) delete m_pDib; m_pDib=NULL; SetDlgItemText(IDC_BUTTON_CONNECT,“连接“); (3)系统通过一个函数发送客户端的请求到服务器端,通过服务器端请求,服务器端才 会给客户端提供需要的服务。在这个系统连接的模块中客户端通过 myRecvData(CClientSock *pc)函数和客户端去连接;服务器通过 myRecvData(CClientSock *pc)和 myAccept(CListenSock *pl)两个函数来为客服端来进 行连接。 客户端具体实现部分如下: switch(usrpack.type) 判断要传送的数字 case 1:/用户登录 memcpy( tstr=usrinfo.password; if(tstr=“passwork ok“/消息框密码正确 SetDlgItemText(IDC_BUTTON_CONNECT,“退出连接“); else AfxMessageBox(“用户名或密码错误,请重新登录!“);/密码错误 break; case 2:/用户退出 memcpy( tstr.Format(“OK Logoff“,,usrinfo.password,usrinfo.uport); AfxMessageBox(tstr); break; 山东科技大学学士学位论文 系统详细设计 7 case 3:/传送位图头文件信息 memcpy( if(m_pDib=NULL) Int m_dwDibSize=cheader.filelength+ izeof( BITMAPINFOHEADER )+1000; m_pDib = new unsigned charm_dwDibSize; m_pDibBits= lbitsOffset=0; break; case 4: if(m_pDibBits!=NULL lbitsOffset=lbitsOffset+usrpack.len; break; case 5:/判断解压后位图地址是否为空 if(m_pDibBits!=NULL) memcpy( lbitsOffset=lbitsOffset+usrpack.len; if(lbitsOffset!=cheader.filelength)/接收错误 tstr.Format(“Error:%d!=%d“,lbitsOffset,cheader.filelength); AfxMessageBox(tstr); return; 3.33.3 桌面捕捉模块的设计桌面捕捉模块的设计 1 1、系统桌面捕捉模块设计概述、系统桌面捕捉模块设计概述 局域网软件运行监控系统系统桌面捕捉模块是该系统的一个重要的功能。系统桌面 捕捉可以直观明了的看到被控端的桌面。该功能需要被控端和控制端共同完成。把被控 端的桌面捕捉到控制端的主要对话框中,并且有滚动条可以拖动看到全部的被控端桌面, 控制被控端图片显示的起始坐标。运行界面如下图所示: 山东科技大学学士学位论文 系统详细设计 8 图 3-3 控制端主对话框 2 2、系统桌面捕捉模块技术分析、系统桌面捕捉模块技术分析 该模块是整个系统制作的难点和重点。首先用 initDrawParam()初始化对话框,用 initDrawSreen()初始化接收到的位图图像,用 drawSreen()将捕捉到的图像画到主对话 框上。这样一个过程图像就显示完毕。 3 3、系统桌面捕捉模块实现过程、系统桌面捕捉模块实现过程 (1)创建一个普通类,把它命名为 CSreenClientDlg,在该类的 SreenClientDlg.h 文件中添加如下成员 变量及成员函数如下。 void CapSreen();/捕捉本机桌面 void WriteBmpToFile(HBITMAP hBitmap, CString strFileName); /把位图信息写入文件 HBITMAP hBitmap;/定义位图 CString m_filename;/定义保存位图的文件名字 void drawSreen();/把捕捉到的控制端桌面信息重绘到控制端主对话框中 void initDrawParam();/首先初始化控制端主对话框的显示 void initDrawSreen();/初始化被控端桌面显示的位置信息 void myRecvData(CClientSock *pc);/判断用户登录 山东科技大学学士学位论文 系统详细设计 9 CClientSock *pclient;/定义一个 Socket 类型的指针; USERINFO usrinfo; /用户信息; NETPACKAGE usrpack;/定义一个数据包 int pklen;/数据包长度 BITMAPINFOHEADER *m_pBIH;/位图头 unsigned char *m_pDibBits;/指向解压后图像数据起点 unsigned char *m_pDib;/图像数据缓冲 long lbitsOffset;/接收图像数据偏移 CapSreenHeader cheader;/图像头信息 int scrx;/远程屏幕水平起点 int scry;/远程屏幕垂直起点 int scrxlm;/水平移动最大值 int scrylm;/垂直移动最大值 int capflag;/是否捕获成功 int m_width;/远程屏幕的宽度 int m_height;/远程屏幕的高度 int cwidth;/绘制区域的宽度 i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论