计算机本科毕业论文-远程控制.doc_第1页
计算机本科毕业论文-远程控制.doc_第2页
计算机本科毕业论文-远程控制.doc_第3页
计算机本科毕业论文-远程控制.doc_第4页
计算机本科毕业论文-远程控制.doc_第5页
免费预览已结束,剩余73页可下载查看

下载本文档

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

文档简介

毕业论文 毕业论文 毕业设计题目 毕业设计题目 网络远程控制技术网络远程控制技术 研究研究 远程控制模块远程控制模块 学生班级 学生班级 学生学号 学生学号 学生姓名 学生姓名 指导老师 指导老师 毕业设计 论文 诚信声明 我谨在此保证 本人所写的毕业设计 论文 凡引用他人的研 究成果均已在参考文献或注释中列出 设计 论文 主体均由本人独 立完成 没有抄袭 剽窃他人已经发表或未发表的研究成果行为 如出现以上违反知识产权的情况 本人愿意承担相应的责任 声明人 签名 年 月 日 摘摘 要要 计算机远程控制技术 是指一台计算机通过互联网 局域网 电话线等手段 以某种方式连接到另外一台计算机 同时可以在本机上对另外的计算机进行操控 这种技术在现代的远程教育 远程办公 远程技术支持等领域得到广泛的运用 本课题研究的远程控制系统采用 Socket 网络编程 面向连接的数据传输 TCP 多线程 可视化编程 多文档界面 MDI 等技术 在 window7 visual studio 2010 NET Framework 4 0 的环境中开发 实现并发控制多台被控端主机的鼠标 键盘 文件系统 与远程主机实现文件的上传和下载功能 本课题开发完成的系统在实现远程控制系统基本功能的基础上 还增加了对远 程主机的注册表 进程 服务项 启动项的监控 优化了鼠标命令的传输 解决了 被控端鼠标抖动的问题 提供了任意添加 移除功能模块 随时建立 断开 暂停 模块与服务端的连接的功能 满足了客户端用户以多种模式显示被控端屏幕的需求 关键字 远程控制 多线程 socket 系统管理 TCP IP MDI ABSTRACT Computer remote control technology refers to a computer through the Internet LAN telephone lines and other means in some way connected to another computer and can Control other computers in local machine This technology is widely used in many areas Such as distance education telecommuting and remote technical support The remote control system uses Socket Network programming connection oriented data transfer TCP technology multi threading technology visual programming multi document interface MDI technology developed in window7 visual studio 2010 and NET Framework 4 0 environment Concurrency control multiple hosts mouse keyboard file system and upload and download files between hosts The system is completed the basic functions of remote control system Achieve of the remote host s registry processes services items startup items monitoring optimize the transmission of the mouse commands solve the problem of jitter host mouse provide any added or Remove the functional modules at any time to establish disconnect suspend the connection modules and server meet the client users to host multiple mode display screen needs Keywords Remote Control Multi threading Socket System Management TCP IP MDI I 目 录 摘 要 Abstract 第 1 章引言 1 1 1 课题背景 1 1 2 国内外研究现状 1 1 3 课题主要内容 2 1 4 文章组织结构 3 第 2 章实现远程控制的相关技术 5 2 1 远程控制协议 5 2 2 Socket 编程技术 7 2 2 1 Winscock 的基本概念 7 2 2 2 Winsock 的编程原理 8 2 3 多线程技术 9 2 4 Windows 系统调用 10 2 4 1 Windows 程序开发中涉及的基本概念 10 2 4 2 API 简介 11 2 5 NET 技术介绍 12 第 3 章远程控制系统的原理 13 3 1 TCP 工作原理 13 3 1 1 建立 TCP 连接 13 3 1 2 数据传输 13 3 1 3 断开 TCP 连接 14 3 2 多控端并发控制原理 14 3 2 1 多线程处理原理 14 3 2 2 多窗口原理 15 3 3 远程控制系统工作原理 15 3 3 1 系统工作原理 15 3 3 2 鼠标控制原理 17 II 3 3 3 键盘控制原理 17 3 3 4 文件系统管理原理 17 第 4 章远程控制系统的总体设计 20 4 1 远程控制系统的需求 20 4 1 1 功能需求 20 4 1 2 性能需求 20 4 1 3 用户界面需求 21 4 2 系统结构设计 21 4 2 1 系统模式设计 21 4 2 2 系统模块设计 22 4 3 通信协议设计 25 第 5 章远程控制系统的详细设计 30 5 1 服务端设计 30 5 1 1 服务端界面设计 30 5 1 2 监听模块设计 31 5 1 3 消息处理模块设计 32 5 1 4 消息响应模块设计 33 5 2 客户端设计 44 5 2 2 键盘控制模块设计 46 5 2 3 鼠标控制模块设计 47 5 2 4 文件管理模块设计 49 5 2 5 文件传输模块设计 51 5 2 6 其他功能模块设计 52 第 6 章系统运用示例 54 第 7 章总结与展望 67 7 1 总结 67 7 2 展望 67 参考文献 68 致谢 70 1 第 1 章引言 1 1 课题背景 远程控制技术 始于 DOS 时代 随着当今网络的高度发展 电脑管理及技术支 持需要的不断扩大 远程操作及控制技术越来越引起人们的关注 2 近年来 黑客 技术不断成熟 对网络安全造成了极大的威胁 其主要攻击手段之一 就是使用远 程控制技术 渗透到对方的主机系统里 从而实现远程操作目标主机 其破坏力之 大 是绝不容忽视的 目前 远程控制技术也广泛的应用于工业领域 生活领域 在工业生产管理过 程中 远程控制技术可以对远程数据进行实时的监控 通过远程控制参加远程会议 随时随地监控公司的状况 同样也可以通过远程控制给在异地的客户提供技术支持 3 在 生活领域 随着人们生活水平的提高 家电设备越来越多 功能也越来越复杂 家 电设备的管理成了困扰人们生活的问题 随着物联网 4 的不断发展 结合远程控制 技术 现已出现智能家电 智能楼宇等方便人们生活的智能物联网 通过与 3G 网络 计算机网络相结合 人们可以在异地通过手机或互联网远程控制管理各种设备 及 时了解设备的运行情况 及时更换 维护设备 大大降低了由于设备异常造成的损 失 1 2 国内外研究现状 我国从 1995 年开始 陆续有许多科研机构和高校开展了基于因特网的远程控制 方面的研究 而且国家 863 计划中也把网络遥控操作作为一个重点项目来抓 北 京理工大学机电一体化中心的吴平东在基于因特网的机械运动远程自动控制和远程 操作控制方面进行了研究 清华大学自动化系的吴秋峰对于网络控制的实时性和数 据传输方面进行了研究 哈尔滨工业大学在基于 Internet 的机器人遥控操作及转台远 程监控方面进行了研究 北京航空航天大学在基于网络的机器人遥控操作方面也进 行了研究 东南大学在遥操作机器人系统基于 Internet 力觉临场遥控操作系统方面进 行了研究 2 在计算机远程控制方面 国内和国外一大批功能强大的远程控制软件 很多远 程控制软件都运用了局域网穿透技术 而且包含强大的远程计算机管理功能 如国 内的网络人远程控制软件 该软件使用了 UDP 协议穿透内网 拥有强大的远程计算 2 机文件管理功能和远程计算机监视功能 国外的 QuickIP 远程控制软件 该软件是 基于 TCP IP 协议穿透局域网的远程控制软件 该软件的独特之处在于它特有的主机 定位功能 使用该功能在不知道远程机器 IP 地址或域名的情况下都能迅速连接远程 主机 随着计算机网络技术的发展 远程控制软件已不仅仅局限于远程控制与管理 许多远程软件都含有语音 视屏 文字聊天功能 如国内的网神远程控制软件和网 络人远程控制软件企业版 国外的 Rsupport 远程控制软件 这些软件都提供了视屏 语音和文字聊天的功能 计算机远程控制发展非常的迅速 各式各样功能齐全的远 程控制软件层出不穷 从远程控制软件的安全性 兼容性和功能方面来看 国内的 发展和国外的相比还有很大的距离 比如在软件的兼容性方面 国外的许多远程控 制软件 如 Rsupport VNC 等 都是基于 B S 模式 跨平台的远程控制软件 如 Mikogo 也陆续出现 但在国内基于 B S 模式的远程控制软件还不普遍 跨平台的 远程控制软件还未曾出现 在功能发面 过内的远程控制软件也不如国外的功能强 大 国外的一些远程控制软件在企业管理 远程办公方面发展得比较成熟 而国内 有这方面功能的软件还不多 1 3 本课题主要内容 设计远程监控系统的目的就是能对远程受控机进行监视和控制 以此来降低管 理成本 本系统将应该能对受控机的文件系统进行管理 包括文件和目录的上传 下 载 删除 移动等操作 对受控主机当前所有任务 注册表 系统服务的监视 及 对受控机的控制 包括对键盘 鼠标的控制 重启计算机 关机等 使得控制端用 户如同亲自在远程主机上操作一样 基于 C S 模式的远程监控具体研究以下内容 1 基于 Socket 技术的网络通信技术研究 利用 Net Framework 4 0 中的 TcpClient 和 TcpListener 类中 connect 方法和 listen 方法的调用 与远程主机建立连接 利用 socket 发送和接收命令进行底层 的通信 通过调用相关的 API 实现在远程主机上的模拟 从而达到控制远程主机的 目的 2 文件系统远程监控技术研究 对受控机的文件系统进行管理 包括文件和目录的上传 下载 删除 移动等操 作 3 3 实现键盘鼠标命令的获取和传输 鼠标输入输出设备的处理 对于服务端来说 鼠标的移动和变化是个大问题 鼠标变换位置的速度远远大 于画面变化的速度 所以要是将鼠标与屏幕画面一同处理 看见的鼠标轨迹将是跳 跃的 客户端无法准确定位鼠标位置 为此要解决好鼠标的处理 4 选择合适传输协议 有了复杂的图形处理 鼠标事件 键盘事件 合理 经济的传输协议当然也是 必需的了 要实现远程控制就要使用面向连接的 TCP 协议 8 而不是无连接的 UDP 协议 另外 UDP 协议的数据包最大长度是 64KB 10 屏幕图像的数据量要超过 64KB 所以要选择 TCP 作为屏幕图像数据传输的协议 5 控制命令发送和接收技术研究 在远程控制中 控制命令的发送和接收技术至关重要 所以本次设计中对于控 制命令的发送和接受技术的研究将是一个重点和难点 控制命令的发送和接受技术 的好坏将对本软件的运行速度以及效率有着很重要的影响 6 多线程技术的研究 要实现软件同时控制多台主机 就必须用多线程实现 同时要解决多线程中资 源共享的同步问题 以及处理好线程的资源的分配与释放 保证程序退出时结束所 有的线程 释放所有的资源 7 VS2010 的程序调试技术 程序的调试技术是开发人员在开发过程中多必需重视的环节 合理正确的调试 技术可以让软件的开发事半功倍 1 4 文章组织结构 本文各章内容安排如下 第一章 引言 简要介绍远程控制的国内外现状与运用前景 阐述了选题的意义 概括了课题的主要内容 第二章 实现远程控制的相关技术 介绍了实现远程控制软件运用的几种关键技 术 第三章 远程控制的原理 阐述了远程控制软件系统工作原理 介绍了软件中几 个重要模块的实现原理 第四章远程控制系统的总体设计 描述了远程控制软件的需求 简要介绍了远 4 程控制系统的总体框架 选择了连接协议 第五章远程控制系统的详细设计 详细的描述了服务端 客户端实现各个模块 功能的设计步骤和过程 第六章 系统运用示例 给出了本系统的一个运用示例 第七章 总结与前景展望 总结了本系统的优缺点以及对远程控制前景的展望 5 第 2 章实现远程控制的相关技术 2 1 远程控制协议 计算机远程控制技术 是由一台计算机通过互联网 局域网 电话线等手段 以某种方式连接到另外一台计算机 同时可以在本机上对另外的计算机进行操控 1 因此必须通过网络将命令传输到对方计算机并执行 所以网络通信是远程控制实现 的基础 也是软件设计者必须了解的首要技术 本课题研究的远程控制系统主要用 到的控制协议是 TCP IP 协议 TCP IP Transmission Control Protocol Internet Protocol的简写 中文译名为传输 控制协议 互联网络协议 TCP IP协议是因特网的基础和核心 因特网是通过一套 规则或协议来保证各种不同类型的计算机网络实现相互通信的 其核心就是著名的 TCP IP协议 1 TCP IP参考模型 TCP IP 不是一个单一的协议 而是一个协议族 因为其多样性 TCP IP 不直 接使用 OSI 模型 而是使用一个 4 层的模型进行通信 其中 TCP 是提供传输层服 务 而 IP 则是提供网络层服务 OSI 模型TCP IP 模型 应用层 表示层 会话层 应用层 Telnet WWW FTP 等 传输层传输层 TCP UDP 网络层网际层 IP ICMP 等 数据链路层 物理层 物理层 图图 2 2 1 1 OSIOSI 参考模型与参考模型与 TCP IPTCP IP 模型对照图模型对照图 7 物理层 对应于网络的基本硬件 10 必须对这些硬件设备的电气特性作一个规 范 使这些设备都能够互相连接并兼容使用 网际层 本层定义了互联网中传输的 信息包 格式 以及从一个用户通过一 个或多个路由器到最终目标的 信息包 转发机制 6 传输层 为两个用户进程之间建立 管理和拆除可靠而又有效的端到端连接 应用层 该层包括所有和应用程序协同工作 利用基础网络交换应用程序专用 的数据的协议 它定义了应用程序使用互联网的规程 2 网间协议IP Internet上使用的一个关键的底层协议是网际协议 通常称IP协议 我们利用一 个共同遵守的通信协议 从而使Internet成为一个允许连接不同类型的计算机和不同 操作系统的网络 要使两台计算机彼此之间进行通信 必须使两台计算机使用同一 种 语言 通信协议正像两台计算机交换信息所使用的共同语言 它规定了通信双 方在通信中所应共同遵守的约定 计算机的通信协议精确地定义了计算机在彼此通信过程的所有细节 例如 每 台计算机发送的信息格式和含义 在什么情况下应发送规定的特殊信息 以及接收 方的计算机应做出哪些应答等等 网际协议IP协议提供了能适应各种各样网络硬件的灵活性 对底层网络硬件几 乎没有任何要求 7 任何一个网络只要可以从一个地点向另一个地点传送二进制数 据 就可以使用IP协议加入Internet了 如果希望能在Internet上进行交流和通信 则每台连上Internet的计算机都必须遵 守IP协议 为此使用Internet的每台计算机都必须运行IP软件 以便时刻准备发送或 接收信息 3 传输控制协议TCP 尽管计算机通过安装IP软件 从而保证了计算机之间可以发送和接收数据 但 IP协议还不能解决数据分组在传输过程中可能出现的问题 因此 若要解决可能出 现的问题 连上Internet的计算机还需要安装TCP协议来提供可靠的并且无差错的通 信服务 TCP协议被称作一种端对端协议 这是因为它为两台计算机之间的连接起了重 要作用 当一台计算机需要与另一台远程计算机连接时 TCP协议会让它们建立一 个连接 发送和接收数据以及终止连接 传输控制协议TCP协议利用重发技术和拥塞控制机制 7 向应用程序提供可靠的 通信连接 使它能够自动适应网上的各种变化 即使在Internet暂时出现堵塞的情况 下 TCP也能够保证通信的可靠 因此 从上面我们可以了解到 IP协议只保证计算机能发送和接收分组数据 7 而TCP协议则可提供一个可靠的 可控制的 全双工的信息流传输服务 综上所述 虽然IP和TCP这两个协议的功能不尽相同 也可以分开单独使用 但它们是在同一时期作为一个协议来设计的 并且在功能上也是互补的 只有两者 的结合 才能保证Internet在复杂的环境下正常运行 凡是要连接到Internet的计算机 都必须同时安装和使用这两个协议 因此在实际中常把这两个协议统称作TCP IP协 议 2 2 Socket 编程技术 每种网络都有自己的 语言 Internet上的 语言 就是TCP IP网络通信协议 Internet是在UNIX系统上发展起来的 在UNIX上有许多成熟的编程接口 其中最通 用的一种叫做Sockets的接口 现在 Windows下的Internet软件都是在Winsock 的基 础上开发的 随着 NET技术的发展 几乎所有的底层实现都被封装在库函数中 我 们只要直接调用库函数 而不必关心它的实现 从而使网络编程越来越简单 2 2 1 Winsock 的基本概念 Socket在英文中是插座的意思 它的设计者实际上是暗指电话插座 11 因为在 Socket环境下编程很像是模拟打电话 Internet的IP地址就是电话号码 要打电话 需要电话插座 在程序中就是向系统申请一个Socket 以后两台机器上的程序 交 谈 都是通过这个Socket来进行的 6 对程序员来说 也可以把Socket看成一个文件 指针 只要向指针所指的文件读写数据 就可以实现双向通信 利用Socket进行通 信 有两种主要的方式 23 第一种是面向连接的流方式 在这种方式下 两个通信 的应用程序之间要先建立一种连接链路 其过程好像在打电话 一台计算机要想和 另外一台计算机进行数据传输的话 必须首先获得一条链路 只有确定了这条通路 之后 数据才能被正确接收和发送 这种方式对应的是TCP协议 第二种叫做无连 接的数据报文方式 这时两台计算机像是把数据放在一个信封里 通过网络寄给对 方 信在传送的过程中可能会残缺不全 而且后发出的信也有可能会先收到 它对 应的是UDP协议 流方式的特点是通信可靠 对数据有校检和重发的机制 通常用 来做数据文件的传输如FTP Telnet等 数据报文方式由于取消了重发校检机制 能 够达到较高的通信速率 可以用于对数据可靠性要求不高的通信 如实时的语音 图像传送和广播消息等 在ISO的OSI网络七层协议中 Winsock主要负责的是控制数据的输入和输出 8 也就是传输层和网络层 Winsock屏蔽了数据链路层和物理层 它的出现给Windows 下的网络编程带来了巨大的变化 应用程序调用Windows Sockets的API实现相互之 间的通信 Windows Sockets又利用下层的网络通信协议功能和操作系统调用实现实 际的通信工作 它们之间的关系如图2 2所示 物理介质 操作系统 如 Windows 网络通信协议 如 TCP IP 应用程序应用程序 网络编程 如 socket 图图 2 22 2 SocketSocket 与应用程序的关系与应用程序的关系 2 2 2 Winsock 的编程原理 面向连接的流式套接字根据连接启动的方式以及本地套接字要连接的目标 套 接字之间的连接过程可以分为三个步骤 服务器监听 客户端请求 连接确认 12 只有这三种连接均建立了 客户程序和服务器程序都建立了全相关 才算一个完整 的 Socket 连接建立 通信才得以进行 流式套接字的三种连接过程如下 1 监听连接 由服务器端处理 但服务器端 Socket 并不定位具体的客户端 Socket 而只是处于等待连接的状态 当服务器端 Socket 监听到客户端 Socket 的 连接请求时 它就响应客户端 Socket 的请求而建立一个新的 Socket 句柄与客户端 连接 而服务器端 Socket 则继续处于监听状态 准备接收其它客户端 Socket 的连 接请求 13 2 客户端连接 是指客户端的 Socket 提出连接请求 要连接的目标即是服务 器端的 Socket 为此 客户端的 Socket 必须首先对它要连接的服务器端 Socket 进 行必要的描述 然后才能定位服务器端的 Socket 并在找到后向它提出连接请求 若此时服务器端 Socket 正处于准备好 就绪 状态 则一旦它向客户端 Socket 发出 允许连接 信号 此时客户端 Socket 与服务器端 Socket 的连接就建立了 13 9 3 服务器端连接 是指当服务器端 Socket 接收到客户端 Socket 的连接请求 后 若它已经处于就绪状态 就把服务器端 Socket 的描述发给客户端 一旦客户 端确认了此描述 连接就建立了 当三种连接全部建立以后 客户机和服务器就可 以互相通讯了 13 图图 2 32 3 面向连接的套接字工作流程图面向连接的套接字工作流程图 服务器端 用 socket 方法建 立套接字 用 bind 方法把 套接字与本地地 址绑定 用 listen 方法说 明已经准备好连 接 用 accept 方法接 收连接 并等待 客户端连接 连接已建立 accept 返回新的 套接字 Receive 和 send 方法在套接字做 数据交换 Shutdown 方法 用于释放连接 关闭套接字 服 务结束 客户端 用 socket 方法建 立套接字 用 connect 方法 把套接字与服务 端连接 Receive 和 send 方法在套接字做 数据交换 Shutdown 方法 用于释放连接 关闭套接字 服 务结束 进行连接 数据交换 2 3 多线程技术 线程就是程序内部的一个控制流 多线程就是在一个程序内部同时进行多个操作 10 每个操作占用一个线程 由于线程在程序内部 多个线程共享一些系统的开销 14 15 因此在多个线程之间切换不需要很大的系统开销 线程间的通讯也比进程间的通讯 快得多 但实际上 计算机CPU不可能同一时间做几件事 而是把时间分配到不同 的线程 使每个线程都有点进展 如果一个线程无法进行 比如线程要求的键盘输 入尚未取得 则转入另一线程的工作 通常 CPU在线程间的切换非常迅速 使人 们感觉到好像所有线程是同时进行的 2 4 Windows 系统调用 Microsoft Windows是一个应用于微型计算机上的具有图形化用户界面操作系统 它为应用程序提供了一个有一致的窗口和菜单结构构成的多任务环境 本次的设计 是在Windows平台下利用visual studio 2010开发工具开发的应用程序 所以必须对 Windows的结构和运行机制有深入的了解 2 4 1 Windows 程序开发中涉及的基本概念 1 WINDOWS 操作系统的结构 WINDOWS操作系统是由许多模块组成的综合体 这些模块包含可执行程序 设备驱动程序 动态链接库等 WINDOWS中的大部分模块采用的是动态链接库的 形式 因而对系统进行扩充和升级简单方便 我们开发应用程序是通过WINDOWS API 函数来控制操作系统来实现各种功能的 而这些API函数就是随系统启动而载 入内存的 2 窗口和消息 窗口是指能进行图形处理的视觉上可见的窗口 也包括不可见的能进行消息处 理的单元 窗口对象的数据为每个窗口和每个窗口类保存的信息 由WINDOWS发 送给窗口消息 由WINDOWS调用窗口函数负责处理 消息是消息驱动机制的核心 是报告某事件发生的通知WINDOWS下发生的消息分为输入消息 控制消息 系统 消息与用户消息四大类 为接收消息 WINDOWS在程序执行后将为其创建一个消 息队列 用来存放发送给程序各窗口的消息 3 句柄 Windows应用程序中存在许多对象 例如菜单 窗口 图标 内存对象 位图 刷子 设备对象和程序实例等 在Windows中 对象使用句柄进行标识 这样 通 过使用一个句柄 应用程序可以访问一个对象 11 在Windows软件开发工具中 句柄被定义为一种新的数据类型 在应用程序中 对句柄的使用一般只有赋值 句柄可以被赋以初始值 被改变为用于标识同类对象 中的另一个对象和被用作函数的参数 与NULL进行相等比较 判定一个句柄是否 为一个有效的句柄 和与标识同类对象的另一个句柄进行相等比较 判定两个句柄 是否标识同一个对象 没有其它的运算 4 资源 WINDOWS 程序中使用了如图标 位图 对话框 菜单等大量的资源 为了是 程序结构化 这些资源被集中在了一个资源文件中进行定义 5 事件驱动 窗口应用程序的对象有属性 方法 事件这 3 种成员组成的 事件是对象从其 他对象或应用程序通过接收或传送告知消息 当特定情况发生时 由事件的触发让 特定的对象来执行的操作 16 也就是说 事件是用来传递消息与反应对象所执行的 行为操作 而通过事件的触发可以反应对象的行为并做进一步的处理 这就是所谓 的事件驱动程序设计 网络应用程序 Windows 操作系 统 事件接收器 单击按钮 1 事件 单击按钮 2 事件 按钮 1 的委托方 法 按钮 1 的方法 按钮 2 的方法 进行注册 进行注册 进行绑定 进行绑定 按钮 2 的委托方 法 图图 2 42 4 操作系统处理事件的流程操作系统处理事件的流程 12 2 4 2 API 简介 API的英文全称 Application Programming Interface WIN32 API也就是Microsoft Windows 32位平台的应用程序编程接口 对这个定义的理解 需要追溯到操作系统 的发展历史上 当WINDOWS操作系统开始占据主导地位的时候 开发WINDOWS 平台下的应用程序成为人们的需要 而在WINDOWS程序设计领域处于发展的初期 12 WINDOWS程序员所能使用的编程工具唯有API函数 这些函数是WINDOWS提供给 应用程序与操作系统的接口 他们犹如 积木块 一样 可以搭建出各种界面丰富 功能灵活的应用程序 所以可以认为API函数是构筑整个WINDOWS框架的基石 在 它的下面是WINDOWS的操作系统核心 而它的上面则是所有的华丽的WINDOWS 应用程序 在本次的设计中用到了大量的API函数 如mouse event函数 该函数可以模拟 一次鼠标事件 比如左键单击 双击和右键单击等 Keybd event函数能触发一个按 键事件 也就是说会产生一个WM KEYDOWN或WM KEYUP消息 17 用这两个函 数可以方便地模拟鼠标键盘事件 2 5 NET 技术介绍 Microsoft 于 2000 年推出 NET initiative 这是一个全新的思想 它将 Internet 和 Web 集成到软件的开发 工程 发布和使用中 NET initiative 不是强迫开发人员用 一种编程语言 而是可以在任何与 NET 兼容的语言中创建 NET 程序 NET 战略将 软件复用的思想扩展到了 Internet 使程序员可以集中考虑自己的专业 而不必实现 每个程序的每个组件 可视化编程使得程序员可以很容易的使用预包装的控件创建 windows 和 web 程序 Microsoft NET Framework 是 NET 战略的核心 这个框架执行程序和 web 服务 包含一个类库 NET 框架类库 提供其他许多的编程功能 可用来建立 C 程序 NET 框架是运行 NET 程序所必须的 它主要由 CLR 和 FCL 组成 如果存在针对 某个平台的 NET 框架 并已经安装了 则这个平台就可以运行任何 NET 程序 NET 框架还提供高度的语言互操作性 用不同的语言编写的程序 都可以被编译成 MSIL 不同的部分可以组合成单个统一的程序 MSIL 使得 NET 程序不再受制于特 定的编程语言 使得 NET 框架具有语言的独立性 18 13 第 3 章远程控制系统的原理 计算机远程控制软件通常分为客户端软件和服务端软件两部分 首先 服务端 socket 与本地的 IP 地址和端口绑定 开启 socket 监听 等待客户端的连接请求 其 次 客户端通过服务端的 IP 地址与端口请求与服务端建立连接 服务端监听到客户 端的请求并决定是否与客户端建立连接 服务端通过分配一个本地端口与客户端建 立连接并获得与客户端连接的 socket 通过 socket 与客户端进行通信 12 在这种模 式中 服务端被动的接收和响应客户端的请求 从而实现客户端控制服务端的目的 下面将详细介绍几种相关技术运用的实现原理 3 1 TCP 工作原理 TCP 是面向连接的可靠的网络传输协议 在运用 TCP 协议传输数据前必须先建 立连接 在数据传输结束之后要关闭连接 下面结束 TCP 协议建立连接 数据传输 和断开连接的过程 3 1 1 建立 TCP 连接 建立 TCP 连接必须经过客户端和服务端的三次 握手 7 9 1 请求方发送一个 SYN 报文指明客户打算连接的服务器的端口 以及初始序列号 2 服务器发回包含服务器初始的序列号的 SYN 报文段作为应答 同时 将确认序 号设置为客户的序列号加 1 以对客户的 SYN 报文段进行确认 3 客户必须将确认序号设置为服务器的序号加 1 以对服务器的 SYN 报文段进行确 认 14 客户端服务端 报文段 1 报文段 2 报文段 3 SYN 客户端初始序列号 SYN 服务端端初始序列号 确认序列号 ACK 确认序列号 图图 3 13 1 建立连接报文段交换图建立连接报文段交换图 3 1 2 数据传输 TCP 连接在发送数据时 发送到对方的数据必须得到接收方的确认 在成块数 据传输中 TCP 使用滑动窗口协议允许接收方对多个数据分组一起确认 7 并用滑 动窗口协议控制发送速率 滑动窗口的大小是由网络的状况和接收方主机共同决定 的 这种数据传输方式提供了可靠的数据传输方式 使得应用程序不需要过多的考 虑数据的丢失和网络的阻塞问题 大大降低了软件的复杂度 使得能将更多的精力 集中在软件开发的其他方面 3 1 3 断开 TCP 连接 终止一个连接要经过 4 此的握手 7 这由 TCP 的半关闭造成的 一个 TCP 连接 时全双工的 即数据在两个方向上能同时传递 因此每个方向上必须单独地进行关 闭 当一方完成数据发送的任务后就能发送一个 FIN 来终止这个方向上的连接 当 一端接收到一个 FIN 它必须通知应用层另一端已经终止了那个方向的数据传送 收到一个 FIN 只意味着在这一方向上没有数据流动 一个 TCP 连接收到一个 FIN 后 任能发送数据 正常关闭 TCP 连接过程如下图所示 15 图图 3 23 2 TCPTCP 连接的正常终止连接的正常终止 3 2 多控端并发控制原理 远程控制软件通过多线程技术和多窗口技术实现在 windows 下并发执行多个窗 口实例 实现同时监控多台服务端主机 3 2 1 多线程处理原理 线程是网络通信程序的基本执行单元 一个或多个线程组成一个进程 它是系 统进程中可以并行执行的程序段 拥有起点 执行的顺序系列和一个终点 21 线程 通信中线程要负责维护自己的堆栈 这些堆栈用于异常处理 优先级调度和其他一 些执行系统重新恢复线程时需要的信息 同一进程中的线程可以共享此进程的资源 和内存空间 22 在与一个服务端建立连接时 通过主线程创建一个控制服务端的窗体实例 该 对象中包含了所有控制服务端的方法 为了实现并发控制多台被控端 就必须能够 同时响应多个窗口 因此 并须为每个窗体中个功能模块用一个单独的线程执行 不同的线程执行不同的功能 避免了程序在控制一台主机时不能接收和处理另一台 服务端主机的数据问题 实现了控制一台主机的同时也能够处理另一个窗体中控制 的服务端主机发过来的数据 从而达到并发控制的目的 3 2 2 多窗口原理 多控端并发控制必须要实现多窗口 每一个被控端都需要一个独立的控制界面 为了实现目标 必须在与服务端建立连接时为每个被控端建立一个控制窗口实例 每个实例都有独立的与被控端通信 socket 每个窗体对象中的方法 属性和事件都 应该是完全属于对象本身的 因此 在实现各模块功能时 各种资源都不能是静态 的 应用程序 关闭 应用程序 关闭 客户端服务端 向应用程序交 付 EOF FIN FIN 的 ACK FIN FIN 的 ACK 16 在实现并发控制多台服务端的功能时运用了多文档界面 MDI 窗口技术 MDI 程 序的主窗体称为父窗体 而程序中的每个窗体称为子窗体 尽管每个 MDI 程序可以 有许多子窗体 但只能有一个父窗体 而且 一次最多只能激活 1 个子窗体 18 子 窗体本身不能作为父窗口 也不能移到父窗口之外 因此 为了在控制时实现全屏 模式控制 必须将子窗体脱离父窗体 必须将子窗体的 mdiparent 属性设置成 null 当窗体需要称为子窗体是只要在窗体最小化事件中将 mdiparent 属性设置为主窗体即 可 3 3 远程控制系统工作原理 3 3 1 系统工作原理 服务端运行服务端软件并开始监听 同时客户端运行客户端软件 请求与服务 端建立连接并建立一个用户控制界面对象和多个线程对象处理接收客户端的数据并 显示和发送命令和数据给服务端等 建立连接后客户端即可请求与服务端建立更多 的控制连接 如 屏幕控制 文件系统控制 上传下载文件等 服务端通过判断连 接类型 建立相应的线程 将连接交给相应的函数处理 同时当客户端需要请求与 另一台服务端连接时 客户端将新建立一个用户控制界面的对象和多个线程来控制 和处理新的服务端 且不会影响对原来连接的服务端的控制 当客户端无法与新的 服务端建立连接时 客户端将给出连接失败的提示 并释放新建立的用户界面控制 对象 17 N 止 Y 否 退出客户端服务端 发送连接请求 新建控制界面对象 连接是否成功 创建线程 发送控制命令 接收反馈信息 继续控制 停止控 制 Y N 监听 是否连接 创建线程 Y 接收控制命令 执行命令 发送反馈信息 停止 继续控制 N 释放控制界面对象 添加新功能 发送连接请求 Y 是否建立连接 Y N 否 断开连接释放资源 退出 Y 否 图图 3 33 3 多服务端软件实现原理图多服务端软件实现原理图 互联网 局域网 服务端 服务端 服务端 客户端 路由器 图图 3 43 4 多服务端远程控制网络拓扑图多服务端远程控制网络拓扑图 18 3 3 2 鼠标控制原理 客户端通过 picturebox 控件的 mouseup mousedown mousemove 等鼠标事件获 得鼠标在该控件上的操作和鼠标的位置 通过 picturebox 控件中屏幕的图片显示的 大小及位置与服务端屏幕的分辨率进行计算 将鼠标在图片上的位置转化为服务端 屏幕的绝对位置 并将坐标以及操作命令一起以设计好的格式发送给服务端 服务 端通过解析收到的指令 调用系统的 API 函数模拟鼠标的动作 从而实现鼠标的控 制 鼠标事件获取 坐标计算 通信 通信 鼠标事件模拟 发送数据 转化为数据包 接收并解析数据 图图 3 53 5 鼠标控制原理鼠标控制原理 3 3 3 键盘控制原理 当客户端 picturebox 控件获得焦点时可以获得 keyup keydown 等事件 控件通 过捕获事件获得键盘的相应操作 将捕获的数据转化为协议数据包发送给服务端 服务端接收数据包并解析成相应的指令 调用系统的 API 函数模拟键盘的操作 键盘事件获取 转化为数据包 通信 通信 键盘事件模拟 发送数据 接收并解析数据 图图 3 63 6 键盘控制原理键盘控制原理 3 3 4 文件系统管理原理 1 文件信息显示 客户端与服务端建立文件系统控制连接之后 用户通过单击 treeview 控件树形 节点图标 控件接收事件并将其转化为命令发送给服务端 服务端解析并执行指令 调用系统的 API 函数读取每个文件或文件夹的信息 图标 文件名 路径 大小等 并逐个将信息发送给客户端主机 客户端主机接收到数据后将信息显示在 treeview 控件中以树形结构显示 并将文件或文件夹的相关信息保存在该控件的对象中 同 时文件的信息也在 listview 控件中以列表的形式显示 19 2 文件和文件夹的重命名 客户端用户通过编辑列表中的文件或文件夹的显示的名称触发事件 控件接收 事件并将事件转化为命令 并从对象中获取节点信息 将更改之前的文件名和更改 之后的文件名及路径发送给服务端 服务端接收并解析数据包 获取文件或文件夹 路径信息 调用系统的 API 函数 将指定文件或文件夹以移动的操作移动到原目录 并赋予新的名称 19 16 3 文件和文件夹的复制粘贴 用户在客户端执行复制和粘贴命令 客户端软件记录用户执行复制命令操作的 完整路径和粘贴命令的完整路径 包括文件名 将路径和命令一同发给服务端主机 服务端接收并解析数据包之后根据命令调用相应的 API 函数 根据客户端发送的文 件路径将文件复制到指定的文件夹中 4 文件或文件夹的删除 用户在客户端执行删除命令 系统触发事件 及路删除的文件或文件夹的信息 文件或文件夹在服务端的路径 并将信息和指令一起发送给服务端 服务端接收 并解析指令之后调用 API 函数删除指定路径下的文件或文件夹 文件管理原理如下图 3 7 所示 用户操作 客户端服务端 触发事件 记录信息 发 送信息和指令 接收解析指 令 调用 API 执 行指令 发送客户端请 求信息 接收并显示信 息 图图 3 73 7 文件管理原理图文件管理原理图 5 文件或文件夹的上传与下载 用户在客户端文件列表上执行文件或文件夹的上传或下载操作 软件接收事件 当前节点的对象中获得文件或文件夹在服务端主机的路径 并将路径和指令一起发 20 送给服务端 服务端经过解析命令获得路径信息 若能成功获得指定路径下的文件 或文件夹则给客户端发送一条成功的反馈消息 否则发送一条失败的反馈消息 服务端收到的若是文件的下载指令 则打开指定文件并循环读取和发送文件内 容给客户端 客户端则循环的接收和写入文件内容到本地 若收到的是文件的上传 指令 服务端将在指定的路径下新建一个文件 并将从客户端读取的文件数据写入 文件中 若是文件夹上传指令 客户端则循环的读取和发送文件夹下的所有文件的 信息和数据以及所有文件夹的信息 服务端则循环的接收 若接收到的是文件夹信 息 则在指定的路径下新建文件夹 并更改路径为当前文件夹下的路径 以后接收 到的文件或文件夹则在当前路径下操作 若是文件夹则要更改当前路径 一直递归 操作 知道文件夹上传结束 如是下载指令则客户端记录服务端主机中文件或文件 夹的位置并将其和命令一同发给服务端主机 其他操作原理与下载的原理相同 21 第 4 章远程控制系统的总体设计 4 1 远程控制系统的需求 设计一款在局域网内能够长期 安全 稳定 可靠 高效运行的远程控制系统 主要目的是能对多台被控端主机进行监视和控制 从而减低管理成本 提高管理效 率和灵活性 4 1 1 功能需求 本系统要求能过对被控端主机的文件进行管理 包括文件和目录的上传 下载 及删除 移动 复制粘贴操作 如同管理本机上的文件系统 能够对被控端的系统 服务 注册表 启动项进行查看 能够获得被控端主机的硬件信息 对被控端的屏 幕的监视 对被控端当前所有任务的管理及对被控端的鼠标 键盘的控制 能够重 启 注销 锁定 关闭被控端主机 通过实现以上的功能使得用户运用此软件能够 达到如同亲自在远程主机上操作一样的效果 4 1 2 性能需求 为了保证远程控制软件能够在局域网中长期 安全 稳定 可靠 高效的运行 应满足一下几个基本的要求 1 标准性 软件应当有规范的界面 要有作为业界标准的 TCP IP 协议所要求的质量规范 在开发软件之前对软件要精心的设计 制定有效的工程规范 保证代码的可移植性 可操作性和易读性 2 响应速度 远程控制软件能够及时的响应用户的鼠标操作和键盘操作 保证服务端能够及 时的处理客户端发送的命令 同时能够及时的将结果反馈给客户端 3 准确性和及时性 远程控制软件能够准确的执行客户端的控制命令 每种命令表示要唯一 不能 模糊 易于服务端的解析和执行 命令不能出现歧义 在软件设计和开发过程中 要充分考虑软件当前和将来可能承受的工作量 使软件的处理能力和响应时间能够 满足大量信息处理的需求 4 开放性和可扩充性 远程控制软件在开发过程中 应该充分考虑以后的可扩充性 例如增添其它功 22 能 新的需求也会不断的更新和完善 一个开放软件 只要符合一定的规范 可以 简单的加入和减少软件的模块 配置软件的新功能 通过软件的修补 替换完成软 件的升级和更新换代 5 易用性和易维护性 由于远程控制软件所面向的使用人员比较广泛 这些使用人员不一定对计算机 非常熟悉 这就要求软件能够提供良好的用户接口 易用的人机交互界面 这就要 求软件应该尽量使用用户熟悉的术语和中文信息的界面 针对用户可能出现的使用 问题 要提供足够的帮助 缩短用户对熟悉软件花费的时间 4 1 3 用户界面需求 本远程控制系统要求能够同时监控多台服务端主机 要做到这一点必须为用户 提供多窗口的界面 每一个被控端一个控制界面 用户可以根据需要可以选择一种 排列方式将被控端控制界面排列到主窗体中同时监视多台被控端的屏幕 当然用户 也可以根据需要调出任意一个被控端进行控制操作 同时也可以在主窗体中监视其 他被控端屏幕 在控制被控端屏幕中用户可以根据需要选择不同屏幕大小和形式 如 全屏 适合窗体大小 适合被控端屏幕大小等 4 2 系统结构设计 本小节主要介绍系统的总体设计框架 介绍各个功能模块的设计思路 4 2 1 系统模式设计 基于远程控制软件交互性强 实时性和安全性要求高的特点 本软件选择 C S 结构 C S 结构即客户机 服务器结构 这种结构一般是服务机负责数据处理 客户 机负责显示界面和处理逻辑业务 12 也就是说 必须在客户机和服务机上分别安装 不同的应用软件 C S 结构一般采用两层结构 客户端 主要负责界面和处理业务逻 辑 服务器 主要负责

温馨提示

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

评论

0/150

提交评论