计算机远程监控系统 实验报告.doc_第1页
计算机远程监控系统 实验报告.doc_第2页
计算机远程监控系统 实验报告.doc_第3页
计算机远程监控系统 实验报告.doc_第4页
计算机远程监控系统 实验报告.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

通达学院 2014 2015 学年 第 1 学期 课程设计 实验报告 模 块 名 称 远程计算机监控系统 专 业 通信工程 学 生 班 级 70 学 生 学 号 11007034 学 生 姓 名 指 导 教 师 设计题目 远程计算机监控系统 任务要求 远程桌面控制是控制远程计算机的网络通信程序 该程序可让您 同时访问不同的远程计算机 无论何时何地 但是 因为 NAT PPPoE DHCP 和 VPN 或一些最新的技术的陆续出现 使 该程序功能越受到重视 实验设备 及软件 计算机 Visual C 6 0 同组人员 学号及姓 名 参考文献 参考格式 参考格式 1 丁展 刘海英 windows网络通信编程 M 人民邮电出版社 2005 20 6 33 36 2 陈家琪 C程序设计教程 M 北京 新华出版社 2004 11 3 侯俊杰 深入浅出MFC第二版 M 华中科技大学出版社 目目 录录 1 1 任务内容 4 1 2 应完成内容 4 二 需求分析二 需求分析 4 4 2 1 用户需求 5 2 2 可采用的技术方案 5 2 3 可行性技术研究 5 三 流程图设计三 流程图设计 6 6 3 1 事件驱动的程序设计 6 3 2 用户界面对象对象介绍 8 四 程序设计四 程序设计 1010 4 1 绑定的线程函数 CLIENTTHREAD的实现 10 4 2 鼠标键盘模拟消息的源代码部分 12 五 设计小结五 设计小结 1717 计算机远程监控系统计算机远程监控系统 一 设计要求一 设计要求 1 1 任务内容任务内容 基于 Windows 的远程控制软件开发毕业设计的主要任务是要求做出从系统角度 计的远程控制模式 并制作相应实用软件 采用服务器 Server 客户端 Client 模式 使用 Socket 编程的基本原理 及 Windows 的消息系统 实现基本的远程控制要求 界面新颖友好 用 VC 开发 要求 1 远程控制模式架构 如基于主从模式 2 远程控制功能实现 如开关机 远程监视 3 远程控制安全考虑 4 远程控制实现平台与技巧 5 远程控制软件实现 要求至少能在两台电脑上正常运行 6 界面新颖友好 1 2 应完成内容应完成内容 1 远程控制模式架构 如基于主从模式 2 远程控制功能实现 如开关机 远程监视 3 远程控制安全考虑 4 远程控制实现平台与技巧 5 远程控制软件实现 要求至少能在两台电脑上正常运行 6 界面新颖友 二 需求分析二 需求分析 计算机技术支持的业务运营支撑系统是随着市场经营的需要不断得到完善 和提高的 系统功能上经历了从最初的资料录入管理到生产派单管理 生产流 程管理 统计管理 业务组织管理 一直到决策支持管理的过程 但是因应系统 建设的需要 我们必须给出一个清晰的合理的业务定义 需求分析就是一个 比较合适的方法 2 1 用户需求用户需求 当您在办公室或商务旅行 但有时 你可能需要做一些事必须试用你家里的电脑 例 如 阅读您的电子书或阅读您的电子邮件 这是当远程访问软件出场的时候了 它能帮助你访问远程计算机就像访问本地计算机 一样 距离不再是问题 远程桌面控制显示另一台计算机的屏幕 透过网际网络或本地网 络 在您自己的屏幕上 该程序允许你利用你的鼠标和键盘来控制其他的计算机远程 这 意味着您可以在远程计算机工作 就像你坐在它前面一样 2 2 可采用的技术方案可采用的技术方案 远程监控系统的实现主要采用了套接字这项技术和虚拟鼠标键盘消息的 API 在 大多数情况下套接字是底层传输代码的必选技术 Socket 可以看成在两个程序 进行通讯连接中的一个端点 一个程序将一段信息写入 Socket 中 该 Socket 将这段信息发送给另外一个 Socket 中 使这段信息能传送到其他程序中 该程 序采用 TCP 协议 因为流控和差控的存在使得传输更具有稳定性 UDP 虽然效 率更高 但是有掉包的情况出现 这是本方案所不允许的 通过 SOCKET 传递的虚拟消息结构体到对端 被对端主机解释并虚拟 最 终达到程序目的 2 3 可行性技术研究可行性技术研究 技术可行性 本次开发所用到的一系列的技术已是累积了几十年的技术 这些技术在这 么多年的发展中并没有被淘汰 反而是越来越来热门 当初远程控制这门技术 在 DOS 时代就已经存在 只是受网络的制约 但是此时这门技术还是受网络技术制约着 网络流量 的问题是造成所有通信程序的不稳定性的罪魁祸首 但是本程序在局域网中是 完全能够实现的 而且本程序也是专门为企业网内部所设计 因为数据信息没 被加密 如果想走 Internet 则需建立 VPN 经济可行性 本软件成本低廉 要的只是两个 ISP 分发的 IP 地址 而且这也多用于局域 网或企业网等内网 就更谈不上成本上的问题 但是如果需要对程序的质量提 高可以购买 MD5 算法 对传输数据进行加密 三 流程图设计三 流程图设计 3 1 事件驱动的程序设计事件驱动的程序设计 传统的 MS DOS 程序主要采用顺序的 关联的 过程驱动的程序设计方法 一 个程序是一系列预先定义好的操作序列的组合 它具有一定的开头 中间过程 和结束 程序直接控制程序事件和过程的顺序 这样的程序设计方法是面向程 序而不是面向用户的 交互性差 用户界面不够友好 因为它强迫用户按照某 种不可更改的模式进行工作 它的基本模型所示 事件驱动程序设计是一种全新的程序设计方法 它是一种面向用户的程序设计 方法 它在程序设计过程中除了完成所需功能之外 更多的考虑了用户可能的 各种输入 并针对性的设计相应的处理程序 它是一种 被动 式程序设计方 法 程序开始运行时 处于等待用户输入事件状态 然后取得事件并作出相应 反应 处理完毕又返回并处于等待事件状态 它的框图如图所示 Windows 操作系统包括三个内核基本元件 GDI KERNEL USER 其中 GDI 图形设备接口 负责在屏幕上绘制像素 打印硬拷贝输出 绘制用户界面包 括窗口 菜单 对话框等 系统内核 KERNEL 支持与操作系统密切相关的功能 如进程加载 文本切换 文件 I O 以及内存管理 线程管理等 USER 为所有 的用户界面对象提供支持 它用于接收和管理所有输入消息 系统消息并把它 们发给相应的窗口的消息队列 消息队列是一个系统定义的内存块 用于临时 存储消息 或是把消息直接发给窗口过程 每个窗口维护自己的消息队列 并 从中取出消息 利用窗口函数进行处理 框图如下 3 2 用户界面对象对象介绍用户界面对象对象介绍 窗口 窗口是用户界面中最重要的部分 它是屏幕上与一个应用程序相对应的矩 形区域 是用户与产生该窗口的应用程序之间的可视界面 每当用户开始运行 一个应用程序时 应用程序就创建并显示一个窗口 当用户操作窗口中的对象 时 程序会作出相应反应 用户通过关闭一个窗口来终止一个程序的运行 通 过选择相应的应用程序窗口来选择相应的应用程序 一个典型的窗口外观所示 说明说明 这是一个基本的网络拓扑原型 更多的网络拓扑原型可以自己定制 客服端PC监控服务器端PC 这是一个简单的CS模型架构 客服器端PC通过 TCP协议与服务器端PC建立连接 这是一个三次握手的过程 建立连接后 两台主机及可以互相通信 逻辑模型逻辑模型 四 程序设计四 程序设计 4 1 绑定的线程函数绑定的线程函数 ClientThread 的实现的实现 DWORD WINAPI ClientThread LPVOID lpParam HWNDhWnd SOCKET MySocket FD SET SocketSet struct timevaltimeout charszMessage 2049 DWORDiRecv struct myStruct myStructure DWORDiLength DWORDiRet intiUpdates myStructure struct myStruct lpParam MySocket myStructure Socket hWnd myStructure hWnd timeout tv sec 0 秒 timeout tv usec 0 微秒 SocketSet fd count 1 SocketSet fd array 1 MySocket while TRUE iRet select 0 if iRet 0 memset szMessage 0 sizeof szMessage iRecv recv MySocket szMessage 2048 0 szMessage iRecv 0 if strncmp szMessage REFRESH 7 0 iUpdates SendRegionDisplay hServerWnd MySocket else if strncmp szMessage WM 3 0 DispatchWMMessage szMessage iLength strlen szMessage if iLength 0 goto CHECK MSG else if strncmp szMessage RESOLUTION 10 0 SendResolution MySocket else if strncmp szMessage DISCONNECT 10 0 fChange FALSE fDIBitmap FALSE pGdiNode GdiStart pNext while pGdiNode free pGdiNode Gdi pDIBitmap free pGdiNode Gdi pDIBChangeStart pGdiNode Gdi fDIBitmap FALSE pGdiNode Gdi fChange FALSE pGdiNode pGdiNode pNext break closesocket MySocket return 0 4 2 鼠标键盘模拟消息的源代码部分鼠标键盘模拟消息的源代码部分 break if fWMKeyBdMsg if iMessage 1 keybd event BYTE vk BYTE vk 0 0 else if iMessage 2 keybd event BYTE vk BYTE vk KEYEVENTF KEYUP 0 iParms if iParms 5 break pCommandNode CommandStart pNext if pCommandNode UINTkeyFlags intiMessage intfWMMouseMsg double iScaleX iScaleY iX iY DWORDdwX dwY intfWMKeyBdMsg UINTvk intfDown intcRepeat UINTflags pCommandNode pCommandNode pNext keyFlags atoi pCommandNode Command szElement break if fWMMouseMsg iScaleX 65535 0 iWidth 1 iScaleY 65535 0 iHeight 1 iX iScaleX iY iScaleY dwX DWORD iX dwY DWORD iY mouse event MOUSEEVENTF ABSOLUTE MOUSEEVENTF LEFTDOWN dwX dwY 0 0 else if iMessage 3 mouse event MOUSEEVENTF ABSOLUTE MOUSEEVENTF LEFTUP dwX dwY 0 0 else if iMessage 4 mouse event MOUSEEVENTF ABSOLUTE MOUSEEVENTF LEFTDOWN dwX dwY 0 0 mouse event MOUSEEVENTF ABSOLUTE MOUSEEVENTF LEFTUP dwX dwY 0 0 mouse event MOUSEEVENTF ABSOLUTE MOUSEEVENTF LEFTDOWN dwX dwY 0 0 else if strcmp WMKeyBdMsg iLoop szWMKeyBdMsg WM KU 0 0 iMessage 2 pCommandNode pCommandNode pNext vk atoi pCommandNode Command szElement pCommandNode pCommandNode pNext fDown atoi pCommandNode Command szElement pCommandNode pCommandNode pNext cRepeat atoi pCommandNode Command szElement pCommandNode pCommandNode pNext flags atoi pCommandNode Command szElement void DispatchWMMessage char szString struct char szWMMouseMsg WMMouseMsg WM MM WM LBD WM LBU WM LBK WM MBD WM MBU WM MBK WM RBD WM RBU WM RBK struct char szWMKeyBdMsg WMKeyBdMsg WM KD WM KU struct char szMsg Msg WM COMP WM GRID WM CMOD intnWMMouseMsg intnWMKeyBdMsg intnMsg struct CommandListCommandStart struct CommandList pCommandNode struct CommandDS Command char pDest intiLoc nChar intiLoop iParms charszString2 2049 nWMMouseMsg int sizeof WMMouseMsg sizeof WMMouseMsg 0 nWMKeyBdMsg int sizeof WMKeyBdMsg sizeof WMKeyBdMsg 0 nMsg int sizeof Msg sizeof Msg 0 CommandStart pNext NULL pCommandNode iParms 0 while pDest strchr szString iLoc pDest szString nChar iLoc memset Command szElement 0 sizeof Command szElemen

温馨提示

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

评论

0/150

提交评论