




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
局域网中远程桌面监控系统的设计与实现毕局域网中远程桌面监控系统的设计与实现毕 业论文业论文 目 录 第第 1 1 章章引引 言言 1 第第 2 2 章章需求分析需求分析 3 2 1系统设计背景与总体目标系统设计背景与总体目标 3 2 1 1系统设计的背景 3 2 1 2系统设计的总体目标 3 2 2用户需求用户需求 3 2 2 1功能需求 3 2 2 2性能需求 4 第第 3 3 章章可采用的技术方案与可行性分析可采用的技术方案与可行性分析 5 3 1可采用的技术方案可采用的技术方案 5 3 1 1套接字 Socket 5 3 1 2JPEG 压缩技术 6 3 1 3Java 的 RMI 技术 7 3 2可行性分析可行性分析 9 3 2 1技术可行性 9 3 2 2经济可行性 9 3 3编程语言与开发工具编程语言与开发工具 10 3 3 1Java 编程语言 10 3 3 2NetBeans 开发工具 10 第第 4 4 章章系统分析与设计系统分析与设计 12 4 1系统基本框架系统基本框架 12 4 2系统总体设计与功能结构系统总体设计与功能结构 13 4 3主控端系统设计与功能结构主控端系统设计与功能结构 13 4 3 1配置管理模块 14 4 3 2显示远程桌面模块 15 4 3 3远程控制模块 16 4 4被控端设计功能结构被控端设计功能结构 17 4 4 1配置管理模块 17 4 4 2发送桌面信息模块 18 4 4 3响应控制模块 19 第第 5 5 章章系统实现系统实现 20 5 1系统实现思路系统实现思路 20 5 2主控端程序 主控端程序 Client Program 22 5 2 1配置管理模块中的基本操作功能 22 5 2 2配置管理模块中的扫描可连主机功能 27 5 2 3显示远程桌面模块中的桌面显示功能 30 5 2 4显示远程桌面模块中的附属功能 34 5 2 5远程控制模块 34 5 3被控端程序 被控端程序 ServiceProgram 35 5 3 1配置管理模块中的安全管理功能 35 5 3 2配置管理模块中的系统基本设置功能 37 5 3 3发送桌面信息模块 39 5 3 4响应控制模块 42 第第 6 6 章章测测 试试 45 6 1主控端测试主控端测试 45 6 1 1对基本操作功能的测试 45 6 1 2对扫描可连主机功能的测试 45 6 1 3对远程控制功能的测试 45 6 2被控端测试被控端测试 45 6 2 1对连接密码的验证测试 45 6 2 2创建存储密码文件的测试 46 6 3测试结果测试结果 46 第第 7 7 章章结结 论论 47 致致 谢谢 48 参考文献参考文献 49 第 1 章 引 言 网络的诞生拓展了计算机的应用范围 网络的迅速发展在提高生产效 率的同时也改变了人们的工作方式 现在有很多公司 企事业单位都建立 了自己的内部网络 对于维护人员来说 希望能够通过网络实时的监控联 网计算机的运行情况 希望根据需要通过网络随时改变联网计算机的设置 希望对出现故障的计算机能够通过网络及时排除故障 对于管理人员来说 希望通过网络随时了解员工的工作进展情况和规范员工对计算机的使用以 及解决工作中存在的问题 为此 希望编写一个适合于局域网的桌面监控 程序以满足上述需求 本系统就在这样的需求环境下孕育而生了 远程控制技术是指用本地计算机通过网络去控制一台或多台远程主机 的技术 当用户使用本地计算机控制远程主机时 就如同坐在远程主机的 屏幕前一样 可以启动远程主机的应用程序 可以使用远程主机的文件资 料 甚至可以利用远程主机的外部打印设备和通信设备来进行打印和访问 互联网 不过 在远程主机中所运行的程序 所打开的文件 所下载的文 档都是存储在远程主机中的 尽管这些操作似乎是在眼前的电脑上进行的 但事实上主控端电脑只是将键盘和鼠标的指令传送给远程主机 同时将被 控端电脑的屏幕画面通过通信线路传过来 从而达到控制与被控制的目的 远程控制系统一般分为客户端程序 Client 和服务端程序 Server 两大部 分 在使用前需要将客户端程序安装到本地计算机上 将服务端程序安装 到远程主机上 它的控制的过程是在本地计算机上执行客户端程序 向远 程主机中的服务端程序发出信号 建立一个特殊的远程服务 然后通过这 个远程服务 使用各种远程控制功能发送远程控制命令 控制远程主机中 的各种应用程序运行 通过远程控制系统 可以进行很多方面的远程控制 包括获取远程主机屏幕图像 打开 关闭远程主机的任意目录 管理远程 主机的文件和文件夹 关闭或者重新启动远程主机中的操作系统 通过远 程主机上 下载文件和捕获音频 视频信号等 远程控制系统也适合一对多模式 可以使用本地计算机控制多个远程 主机 管理者可以在本地计算机上同时查看多个员工的工作进展情况 及 早发现工作中的差错以便及时改正 特别是对于网络管理员 技术服务人 员来说 远程控制提供了一个便捷 高效的手段 但是所有这些与网络环境有很大的关系 网速过慢是很多网络程序的 瓶颈 远程控制也不例外 获取被控端电脑屏幕的过程 实际上就是服务 器端传输一副屏幕图片到客服端的过程 这个过程需要传输大量的数据 如何对屏幕图片数据进行压缩 多长时间发送一次屏幕图片数据 是不是 每次都需要发送整个屏幕的数据 这些都是远程控制必须面对的问题 与此同时 网络安全 信息安全也成为人们不得不考虑的热点问题 远程控制系统存在着比较严重的安全隐患 容易受到黑客的攻击和非法入 侵 这就需要对软件在设计方面做出安全考虑 第 2 章 需求分析 2 1 系统设计背景与总体目标 2 1 1 系统设计的背景 随着计算机应用领域的不断拓宽 网络技术的日臻成熟 很多公司企 业都建立了自己的局域网 单个主机的资源已经不能满足用户的需求 通 过网络操作其它主机并使用其资源已成为局域网中必备的功能 远程桌面 系统就是在这样的背景下孕育而生 2 1 2 系统设计的总体目标 能够随时对局域网中的主机进行远程监控 实时性高 通信量小 界 面友好 操作简单 功能齐全并有一定安全措施 2 2 用户需求 2 2 1 功能需求 1 主控端 对远程主机的桌面进行实时监视 1 修改被控制端的系统配置文件 2 可以对远程主机进行关机和重新启动的操作 3 可在本地直接操作远程主机 4 实现鼠标的基本操作 包括 单击 双击 拖拽 滚轮等 5 实现键盘的基本操作 包括 基本键 控制键 功能键等 6 对局域网中的远程主机进行扫描 寻找可控主机 7 对系统的运行状态提供简单的提示信息 8 2 被控端 开机自动运行服务端程序 1 退出和设置系统需要身份验证 2 程序运行时 可以最小化到系统托盘 3 远程连接需要身份验证 4 可以改变系统基本设置 5 对于程序的操作和系统的运行状态提供简单的提示信息 6 2 2 2 性能需求 1 实时性 主控端实时监视远程主机的桌面 被控端及时响应主控端 的控制请求 2 安全性 被控端只能被一台主机控制 连接时需要身份验证 退出 程序时需提供密码 3 网络通信量 尽量减少网络上传送的数据量 节省网络资源 4 与平台无关性 适用于运行不同桌面操作系统的计算机 5 界面友好 操作简单 第 3 章可采用的技术方案与可行性分 析 3 1 可采用的技术方案 基于以上需求分析 本系统的实现主要采用了套接字 Socket 技术 JPEG 图像编码技术 Java 的 RMI 远程对象调用技术 3 1 1 套接字 Socket Socket 的英文原义是 插槽 插座 在网络通信中通常也称作 套 接字 用于描述 IP 地址和端口 是一个通信链的句柄 应用程序通常通 过 套接字 向网络发出请求或者应答网络请求 Socket 利用网间网通信 设施实现进程通信 但它对通信设施的细节毫不关心 只要通信设施能提 供足够的通信能力 就可以了 Socket 提供了进程通信的端点 进程通信 之前 双方首先必须各自创建一个端点 否则没有办法建立联系并相互通 信 最重要的是 Socket 是面向客户 服务器模型而设计的 针对客户和 服务器程序提供不同的 Socket 系统调用 客户随机申请一个 Socket 系 统为之分配一个 Socket 号 服务器拥有全局公认的 Socket 任何客户都 可以向它发出连接请求和信息请求 Socket 利用客户 服务器模式巧妙地解决了进程之间建立通信连接的问 题 服务器 Socket 为全局所公认非常重要 假如通信双方没有任何一方的 Socket 固定 就好比打电话的双方彼此不知道对方的电话号码 要通话是 不可能的 套接字成对出现 其中一个运行于客户机端 称之为 ClientSocket 另一个运行于服务器端 称之为 ServerSocket 根据连接启动的方式以及 本地套接字要连接的目标 套接字之间的连接过程可以分为三个步骤 服 务器监听 客户端请求 连接确认 所谓服务器监听 是服务器端套接字 并不定位具体的客户端套接字 而是处于等待连接的状态 实时监控网络 状态 所谓客户端请求 是指由客户端的套接字提出连接请求 要连接的 目标是服务器端的套接字 为此 客户端的套接字必须首先描述它要连接 的服务器的套接字 指出服务器端套接字的地址和端口号 然后就向服务 器端套接字提出连接请求 所谓连接确认 是指当服务器端套接字监听到 或者说接收到客户端套接字的连接请求 它就响应客户端套接字的请求 建立一个新的线程 把服务器端套接字的描述发给客户端 一旦客户端确 认了此描述 连接就建立好了 常用的 Socket 类型有两种 流式 Socket SOCK STREAM 和数据 报式 Socket SOCK DGRAM 流式是一种面向连接的 Socket 针对于面 向连接的 TCP 服务应用 数据报式 Socket 是一种无连接的 Socket 对应 于无连接的 UDP 服务应用 本程序采用 TCP 协议 因为流控和差控的存在使得传输更具有稳定性 UDP 虽然效率更高 但是有掉包的情况出现 这是本方案所不允许的 3 1 2 JPEG 压缩技术 要想对远程主机进行监控 就需要截取远程主机的屏幕图像 并将图 像发送到本地计算机 本地计算机接收该图像并显示到程序界面中 截取 的屏幕图像根据屏幕分辨率的不同 图像数据的大小也不同 最常用的 1024 768 分辨率的屏幕截取图像大约 4MB 5MB 这么大的图片在网络 中传送非常慢 满足不了用户的需求 必须控制图片的大小 使它更有利 于网络传送 控制图片大小的方法主要有三种 1 降低图片的颜色值 2 缩小图像的尺寸 3 使用压缩的图片格式 根据用户需求 本系统采用第 3 种方法 将捕捉的屏幕图像编码为支持压缩格式的 JPEG 类型的图片 然后在网络中传送 一张 1024 768 分辨率的屏幕截图 编码为 JPEG 格 式大约 150KB 它在局域网中的传送速度可以满足用户需求 JPEG 是 Joint Photographic Experts Group 联合图像专家组 的缩写 文 件后辍名为 jpg 或 jpeg 是目前网络上最流行的图像格式 由一个 软件开发联合会组织制定 是一种有损压缩格式 能够将图像压缩在很小 的储存空间 JPEG 压缩技术十分先进 它用有损压缩方式去除冗余的图 像数据 在获得极高的压缩率的同时能展现十分丰富生动的图像 而且 JPEG 是一种很灵活的格式 具有调节图像质量的功能 允许用不同的压 缩比例对文件进行压缩 支持多种压缩级别 压缩比率通常在 10 1 到 40 1 之间 压缩比越大 品质就越低 相反地 压缩比越小 品质就越好 当然也可以在图像质量和文件尺寸之间找到平衡点 JPEG 格式压缩的主 要是高频信息 对色彩的信息保留较好 适合应用于互联网 可减少图像 的传输时间 可以支持 24bit 真彩色 也普遍应用于需要连续色调的图像 JPEG 格式的应用非常广泛 目前各类浏览器均支持 JPEG 这种图像格 式 因为 JPEG 格式的文件尺寸较小 下载速度快 JPEG 格式又可分为标准 JPEG 渐进式 JPEG 及 JPEG2000 三种格式 1 标准 JPEG 格式 此类型图像在网页下载时只能由上而下依序 显示图片 直到图片资料全部下载完毕 才能看到全貌 2 渐进式 JPEG 格式 渐进式 JPG 为标准 JPG 的改良格式 可以 在网页下载时 先呈现出图片的粗略外观后 再慢慢地呈现出完整的内容 就像 GIF 格式的交错显示 而且存成渐进式 JPG 格式的档案比存成标准 JPG 格式的档案要来得小 所以如果要在网页上使用图片 可以多用这种 格式 3 JPEG2000 格式 新一代的影像压缩法 压缩品质更好 并可改 善无线传输时因讯号不稳造成马赛克及位置错乱的情况 改善传输的品质 3 1 3 Java 的 RMI 技术 RMI Remote Method Invoke 是 Java 的远程方法调用技术 支持 Java 的分布式对象之间的方法调用 本系统的控制功能就是利用 RMI 技 术直接调用远程计算机的鼠标和键盘控制方法 执行各种操作 RMI 使用 Java 语言接口定义了远程对象 它集合了 Java 序列化和 Java 远程方法协议 Java Remote Method Protocol 简单地说 这样使原先 的程序在同一操作系统的方法调用 变成了不同操作系统之间程序的方法 调用 RMI Remote Method Invocation 远程方法调用 是用 Java 在 JDK1 1 中实现的 它大大增强了 Java 开发分布式应用的能力 Java 作为 一种风靡一时的网络开发语言 其巨大的威力就体现在它强大的开发分布 式网络应用的能力上 而 RMI 就是开发百分之百纯 Java 的网络分布式应 用系统的核心解决方案之一 RMI 目前使用 Java 远程消息交换协议 JRMP Java Remote Messaging Protocol 进行通信 JRMP 是专为 Java 的远程对象制定的协议 因此 Java RMI 具有 Java 的 Write Once Run Anywhere 的优点 是分布式应 用系统的百分之百纯 Java 解决方案 用 Java RMI 开发的应用系统可以部 署在任何支持 JRE Java Run Environment Java 运行环境 的平台上 但 由于 JRMP 是专为 Java 对象制定的 因此 RMI 对于用非 Java 语言开发 的应用系统的支持不足 不能与用非 Java 语言书写的对象进行通信 RMI 应用程序通常包括两个独立的程序 服务器程序和客户机程序 典型 的服务器应用程序将创建多个远程对象 使这些远程对象能够被引用 然 后等待客户机调用这些远程对象的方法 而典型的客户机程序则从服务器 中得到一个或多个远程对象的引用 然后调用远程对象的方法 RMI 为服 务器和客户机进行通信和信息传递提供了一种机制 RMI 的主要优点如下 面向对象 RMI 可将完整的对象作为参数和返回值进行传递 而不仅 仅是预定义的数据类型 RMI 不需额外的客户程序代码 将对象分解成基 本数据类型 直接跨网传递对象 安全 RMI 使用 Java 内置的安全机制保证下载执行程序时用户系统 的安全 RMI 使用专门为保护系统免遭恶意小应用程序侵害而设计的安全 管理程序 可保护系统和网络免遭潜在的恶意下载程序的破坏 便于编写和使用 RMI 使得 Java 远程服务程序和访问这些服务程序 的 Java 客户程序的编写工作变得轻松 简单 远程接口实际上就是 Java 接口 服务程序大约用三行指令宣布本身是服务程序 其它方面则与任何 其它 Java 对象类似 这种简单方法便于快速编写完整的分布式对象系统的 服务程序 并快速地制作软件的原型和早期版本 以便于进行测试和评估 因为 RMI 程序编写简单 所以维护也简单 编写一次 到处运行 RMI 是 Java 编写一次 到处运行 方法的一部 分 任何基于 RMI 的系统均可 100 地移植到任何 Java 虚拟机上 分布式垃圾收集 RMI 采用其分布式垃圾收集功能收集不再被网络中 任何客户程序所引用的远程服务对象 与 Java 虚拟机内部的垃圾收集类 似 分布式垃圾收集功能允许用户根据自己的需要定义服务器对象 并且 明确这些对象在不再被客户机引用时会被删除 并行计算 RMI 采用多线程处理方法 可使服务器利用这些 Java 线 程更好地并行处理客户端的请求 3 2 可行性分析 3 2 1 技术可行性 远程控制技术早在 DOS 时代就已经存在 只是受到当时硬件环境和 网络技术的制约 没有得到更多的关注 随着网络的迅速发展 这项技术 越来越热门 发展至今以非常成熟 对于以上所采用的技术 Java 对其支持已非常完善 关于 Socket 的 API 存在于 J 这个包里面 因此只要导入这个包 就可以完成两个进程之间相互通讯 其中一个进程提供一个固定的位置 而另一个进程则只需要知道这个固定的位置 并去建立两者之间的联系 然后完成数据的通讯就可以了 关于 JPEG 的 API 存在于 com sun image codec jpeg 包中 因此只要导 入这个包就可以对图像进行 JPEG 编解码了 关于 RMI 可能显得有些复杂 但只要完成以下四步就可以创建一个 RMI 应用 1 创建远程接口 继承 java rmi Remote 接口 2 创建远 程类 实现远程接口 3 创建服务器程序 负责在 rmiregistry 注册表中 注册远程对象 4 创建客户程序 负责定位远程对象 并且调用远程对 象的方法 综上所述 本系统的开发技术可行 3 2 2 经济可行性 本软件成本低廉 对硬件要求也不高 对于支持 TCP IP 协议的局域 网来说 不需要购买更多的硬件设施 适合于目前大多数的网络环境 所 以说本系统的开发经济可行 3 3 编程语言与开发工具 本系统采用 Java 编程语言实现 由 NetBeansIDE6 7 开发 3 3 1 Java 编程语言 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计 语言和 Java 平台的总称 用 Java 实现的 HotJava 浏览器 支持 Java applet 显示了 Java 的魅力 跨平台 动态的 Web Internet 计算 从此 Java 被广泛接受并推动了 Web 的迅速发展 常用的浏览器现在均支持 Java applet 另一方面 Java 技术也不断更新 Java 平台由 Java 虚拟机 Java Virtual Machine 和 Java 应用编程接 口 Application Programming Interface 简称 API 构成 Java 应用编程 接口为 Java 应用提供了一个独立于操作系统的标准接口 可分为基本部分 和扩展部分 在硬件或操作系统平台上安装一个 Java 平台之后 Java 应用 程序就可运行 现在 Java 平台已经嵌入了几乎所有的操作系统 这样 Java 程序可以只编译一次 就可以在各种系统中运行 3 3 2 NetBeans 开发工具 NetBeans 由 Sun 公司在 2000 年创立 它是开发人员和客户社区的家 园 旨在构建世界级的 Java IDE NetBeans 当前可以在 Solaris Windows Linux 和 Macintosh OS X 平台上进行开发 并在 SPL Sun 公用许可 范围内使用 NetBeans 是一个全功能的开放源码 Java IDE 可以帮助开发人员编写 编译 调试和部署 Java 应用 并将版本控制和 XML 编辑融入其众多功能 之中 NetBeans 可支持 Java 2 平台标准版 J2SE 应用的创建 采用 JSP 和 Servlet 的 2 层 Web 应用的创建 以及用于 2 层 Web 应用的 API 及软件 的核心组的创建 所有这些都为 Java 开发人员创造了一个可扩展的开放源 多平台的 Java IDE 以支持他们在各自所选择的环境中从事开发工作 如 Solaris Linux Windows 或 Macintosh NetBeans 是一个为软件开发者而设计的自由 开放的 IDE 集成开发 环境 可以在这里获得许多需要的工具 包括建立桌面应用 企业级应 用 WEB 开发和 JAVA 移动应用程序开发 C C 甚至 Ruby NetBeans 可以非常方便的安装于多种操作系统平台 包括 Windows Linux Mac OS 和 Solaris 等操作系统 局域网中远程桌面监控系统的设计与实现 第 4 章 第 4 章 系统分析与设计 4 1 系统基本框架 系统基本框架 如图 4 1 所示 在支持 TCP IP 协议的局域网中 本 地计算机与远程主机通过物理网络相连 远程主机运行被控端程序 监听 固定端口等待连接 本地计算机运行主控端程序 连接指定端口 两端的 程序通过套接字 Socket 建立连接 并通过 Socket 输入输出流收发信息 实现监视和控制功能 Socket 通过 TCP IP 协议实现两端计算机的数据通 信 物理网络 支持 TCP IP 协议局域网 如 IEEE802 3 发送 接收 发送 接收 建 立 连 接 主控端 客户端 被控端 服务端 连接远程主机等待远程连接 发送控制信息执行控制命令 图 4 1 系统基本框架 获取桌面信息显示桌面信息 Socket TCP IP 局域网中远程桌面监控系统的设计与实现 第 4 章 4 2 系统总体设计与功能结构 总体功能结构 如图 4 2 所示 包括主控端和被控端两大部分 其中 主控端包括三大模块 即 本地的配置管理模块 接收远程主机发送的桌 面信息并绘制到组件显示 实现监视功能模块和发送控制信息实现对远程 主机的控制功能模块 被控端也包括三大模块 即 本地配置管理模块 获取并发送桌面图片为主控端的监视提供信息服务模块和响应主控端的控 制请求模块 按控制信息进行指定的操作 远程桌面监控系统 主控端 客户端 被控端 服务端 配 置 管 理 模 块 发 送 桌 面 信 息 配 置 管 理 模 块 响 应 控 制 模 块 远 程 控 制 模 块 显 示 远 程 桌 面 图 4 2 总体功能结构 4 3 主控端系统设计与功能结构 主控端程序是远程桌面监控系统两大组成部分之一 它要实现对远程 主机的基本监视功能 在控制功能上还要对各个细节 如 鼠标的单击 双击 拖拽 滚轮等 加以实现 除此之外 对还要实现系统的基本配置 功能 这都无疑增加了程序的复杂性 对系统分块处理是降低其复杂性的 有效方法 本系统将主控端程序分成三大模块 逐一实现 局域网中远程桌面监控系统的设计与实现 第 4 章 4 3 1 配置管理模块 配置管理模块主要实现对系统的基本操作和设置 并增加一些附加功 能 可以提高整个系统的性能 使其功能更强 配置管理模块的功能结构如图 4 3 所示 包括两大功能 基本操作功 能和扫描可连主机功能 1 基本操作功能 输入 IP 地址 输入要监控的远程主机的 IP 地址 格式采用点分 1 十进制 32 位的 IP V4地址 输入端口号 输入远程主机被控端程序监听的端口号 为了避 2 免与其它应用程序发生冲突 端口号应大于 1024 小于 65535 输入连接密码 出于安全考虑 防止非法用户连接远程主机 3 被控端应要求主控端输入正确的链接密码 输入发送速度 为了满足用户对网络通信量和系统实时性的不 4 同要求 本系统可以手动设置发送速度 发送速度从 0 毫秒抓取一张至 1000 毫秒抓取一张 速度越快 实时性越好 但是通信量越大 速度越慢 通信量越小 但实时性越差 系统默认 100 毫秒抓取一张 2 扫描可连主机功能 在局域网中包含很多主机 对于主控端来说 需要知道哪些主机可以 连接并且获取可连接主机的 IP 地址 扫描可连主机成为提高系统实用性 与方便操作的重要功能 在大多数局域网中 主机的网络地址是相同的 子网掩码是相同的 主机 地址是连续的 这就使扫描可连主机成为了可能 对于设定的一段 IP 地 址 按照设定的端口逐个连接来判断其可连接性 就解决来上述问题 输入扫描端口号 输入远程主机被控端程序监听的端口号 数 1 值应大于 1024 小于 65535 分别输入起始 IP 地址和结束 IP 地址 其中网络号应相同 子网 2 掩码是 255 255 255 000 3 信息显示功能 信息显示功能用于实时显示系统的状态 获取一些相关的信息 如系 局域网中远程桌面监控系统的设计与实现 第 4 章 统开始运行的时间 对操作错误的提示 本地的主机名和 IP 地址等 配置管理模块 基本操作功能扫描可连主机功能 输 入 IP 地 址 输 入 端 口 号 输 入 连 接 密 码 输 入 发 送 速 度 要 扫 描 端 口 号 起 始 IP 地 址 结 束 IP 地 址 信 息 显 示 功 能 图 4 3 主控端配置管理模块 4 3 2 显示远程桌面模块 显示远程桌面模块的功能结构如图 4 4 所示 它是主控端的核心部分 不仅需要读取输入流中的数据并解码 而且需要将图片绘制到自己创建的 容器中 除此之外 还要在容器中添加远程控制的开关组件和调节发送速 度的组件 1 显示远程桌面 读取输入流中的数据并解码 连接建立后 从输入流中读取的数 1 据是经过被控端编码后发送过来 因此需要解码才能将图片绘制到容器 创建容器并绘制图片 创建的容器与图片的大小会不一致 因此 2 需要根据容器的大小计算图片的缩放比例 2 开关远程控制 对远程主机的控制在需要时开启 在不需要时关闭可以提高系统的灵 活性 因此需要在容器中添加开关按钮 3 调节发送速度 局域网中远程桌面监控系统的设计与实现 第 4 章 为了满足用户对网络通信量和系统实时性的不同要求 本系统可以随 时改变发送速度 发送速度从 0 毫秒抓取一张至 1000 毫秒抓取一张 速 度越快 实时性越好 但是通信量越大 速度越慢 通信量越小 但实时 性越差 系统默认 100 毫秒抓起一张 显示远程桌面模块 显 示 远 程 桌 面 关 闭 远 程 控 制 调 节 发 送 频 率 开 启 远 程 控 制 图 4 4 主控端显示远程桌面模块 4 3 3 远程控制模块 远程控制模块主要实现对远程主机的鼠标和键盘进行控制 其功能结 构如图 4 5 所示 远程控制模块主要包括 鼠标操作功能和键盘操作功能 1 鼠标操作功能 根据本地计算机的鼠标事件向远程主机发送控制信息 2 键盘操作功能 根据本地计算机的键盘事件向远处主机发送控制信息 局域网中远程桌面监控系统的设计与实现 第 4 章 远程控制模块 鼠标操作功能键盘操作功能 鼠 标 双 击 控 制 鼠 标 移 动 控 制 鼠 标 滚 轮 控 制 鼠 标 拖 拽 控 制 按 键 按 下 控 制 按 键 抬 起 控 制 鼠 标 单 击 控 制 控 制 发 送 频 率 图 4 5 主控端远程控制模块 4 4 被控端设计功能结构 被控端程序同主控端程序一样也是远程桌面监控系统的重要组成部分 它不仅要抓取桌面图片 并且编码后发送到输出流 还要按照主控端的控 制请求执行相应操作 除此之外 对还要实现系统的基本配置功能 这都 无疑增加了程序的复杂性 对系统分块处理是降低其复杂性的有效方法 本系统将被控端程序分成三大模块 逐一实现 4 4 1 配置管理模块 配置管理模块主要实现对系统的基本操作和设置 并增加一些安全方 面的考虑 以提高系统的安全性 配置管理模块功能结构如图 4 6 所示 包括两大功能 安全管理功能 和系统基本设置功能 1 安全管理功能 只有输入正确的管理密码才能退出系统或改变系统设置 2 系统基本设置 局域网中远程桌面监控系统的设计与实现 第 4 章 在正确输入了管理密码后 可以对系统进行设置 包括重设端口号 连接密码 管理密码和恢复默认值等等 图 4 6 被控端配置管理模块 配置管理模块 安全管理功能 输 入 退 出 密 码 输 入 设 置 密 码 信 息 显 示 窗 口 系 统 退 出 操 作 系统基本设置 恢 复 默 认 设 置 重 设 监 听 端 口 重 设 连 接 密 码 重 设 管 理 密 码 4 4 2 发送桌面信息模块 为减少通信量 抓取图片后都与上一次抓取的图片进行比较 如果相 同则不发送 如果不同再发送 发送桌面信息模块如图 4 7 所示 1 获取桌面信息 根据设定的发送速度 每个一段时间抓取一幅桌面图片 然后进行比 较 2 图片信息编码 对抓取的图片进行比较后 如果不同就按照 JPEG 格式对图片进行压 缩 3 编码信息输出 将压缩后的图片信息写入输出流 局域网中远程桌面监控系统的设计与实现 第 4 章 发送桌面信息模块 编 码 信 息 输 出 图 片 信 息 编 码 获 取 桌 面 信 息 图 4 7 被控端发送桌面信息模块 4 4 3 响应控制模块 响应控制模块的功能结构如图 4 8 所示 它主要是根据主控端的控制 信息 执行相应的键盘和鼠标操作 包括鼠标操作功能和键盘操作功能 响应控制模块 鼠标操作功能键盘操作功能 鼠 标 双 击 响 应 鼠 标 移 动 响 应 鼠 标 滚 轮 响 应 鼠 标 拖 拽 响 应 按 键 按 下 响 应 按 键 抬 起 响 应 鼠 标 单 击 响 应 改 变 发 送 速 度 图 4 8 被控端响应控制模块 局域网中远程桌面监控系统的设计与实现 第 5 章 第 5 章 系统实现 5 1 系统实现思路 基于以上系统分析 远程桌面监控系统实际上是主控端程序与被控端 程序通过套接字 Socket 建立连接并进行数据通信 达到监控与被监控的目 的 因此 需要两个独立的程序 ClientProgram 主控端 和 ServiceProgram 被控端 其程序总体流程如图 5 1 所示 首先 ServiceProgram 被控端 监听设定的端口 等待 ClientProgram 主控端 的连接请求 ClientProgram 连接指定端口 与 SreviceProgram 建立连接后 ServiceProgram 抓取桌面图像 编码后发送 ClientProgram 接收图像 解 码后绘制到组件上显示 ClientProgram 发送控制请求 ServiceProgram 响 应控制请求并按控制信息进行相应操作 局域网中远程桌面监控系统的设计与实现 第 5 章 否 是 否 是 否 是 开 始 服务端监听端口等待连接 连接 发送桌面信息 获取桌面信息 执行控制命令 断开连接 响应连接请求 连 接 接收桌面信息 显示远程桌面接收控制信息 输入 IP 地址 输入端口号 发送控制信息 图 5 1 程序总体流程图 SericeProgram ClientProgram 开 始 是 结 束 断开连接 程序终止 否 是 结 束 否 程序终止 局域网中远程桌面监控系统的设计与实现 第 5 章 5 2 主控端程序 Client Program 进程是操作系统结构的基础 是一个正在执行的程序 当运行一个程 序 就启动了一个进程 主控端程序的运行就启动了一个进程 进程又被 细化为线程 也就是一个进程下有多个能独立运行的更小的单位 虽然在 感觉上 多个线程是在同时运行 但事实上 在某一时间点上 CPU 运行 的线程只有一个 在 Java 语言中实现 Runnable 接口是创建线程的一个必要条件 Runnable 接口位于 java lang 包中 它只有一个方法 run run 方法没有 返回值 使用实现接口 Runnable 的对象创建一个线程时 启动该线程将 导致在独立执行的线程中调用对象的 run 方法 本系统在主控端程序 ClientProgram 定义两个线程分别是 远程桌 面监控线程 ReceiveImageThread 和配置管理线程 MainFrameThread MainFrameThread 线程实现基本操作功能和扫描可连主机功能 ReceiveImageThread 线程实现桌面显示功能 对远程主机的鼠标和键盘操 作的功能 5 2 1 配置管理模块中的基本操作功能 1 程序流程图与运行效果图 基本操作功能程序流程如图 5 2 所示 它是 ClientProgram 的开始 它 的主要功能是接收用户输入的数据 定义远程主机的 IP 地址和端口号 只有确定了运行 ServiceProgram 的远程主机的 IP 地址 才能进行互联 局域网中远程桌面监控系统的设计与实现 第 5 章 是 否 否 否 否 否 是 是 是 否 是 开始 输入 IP 地址和端口 号 输入连接密码 输入发送速度 按钮事件 监听 连接 按钮 IP 地址与端口号正确 断开连接 频率正确 连接远程主机 默认 100 图 5 2 主控端基本操作功能程序流程图 是 程序终止 结 束 连接成功 显示远程桌面模块 在基本操作界面中 放置了 4 个单行文本框 两个按钮和一个多行文 本框 运行效果如图 5 3 所示 局域网中远程桌面监控系统的设计与实现 第 5 章 图 5 3 主控端基本操作界面 2 实现主控端基本操作界面的关键步骤如下 编写 MainFrameThread 类实现 Runnable 接口 覆盖 public void 1 run 方法 创建程序主界面线程 编写 连接 按钮的事件处理方法 该方法从相应文本框中获取 2 用户输入的 IP 地址 端口号和连接密码等信息 并根据相应信息与远程 主机建立连接 并启动远程桌面监控线程 编写 拉开 按钮的事件处理方法 该方法用于实现扫描可连主 3 机功能 编写 getTime 方法 该方法在程序启动时调用 记录系统启动时 4 间 在用户进行其他操作时也调用本方法 编写 initSystemTray 方法 该方法可以将程序窗体隐藏 只在系 5 统托盘中提供一个托盘图标 可以使用鼠标单击该图片 显示程序窗体 3 类 构造函数和主要方法介绍 在基本操作功能中用到的类主要有 JFrame JLabel JButton TextField TextArea SystemTray TrayIcon I mageIcon InetAddress GregorianCalendar JFrame 类位于 javax swing 包 1 主要功能 局域网中远程桌面监控系统的设计与实现 第 5 章 创建带有标题和边框的顶层窗口 在本模块中用于创建程序界面 构造函数 JFrame String title 创建一个新的 初始不可见的 具有指定标题的 Frame 主要方法 public Component add Component comp 将指定组件添加到此容器中 public void setResizable boolean resizable 设置此窗体是否可由用户调 整大小 JLabel 类位于 javax swing 包 2 主要功能 Label 对象是一个可在容器中放置文本的组件 构造函数 Label String text 使用指定的文本字符串构造一个新的标签 主要方法 public void setText String text 将此标签的文本设置为指定的文本 JButton 类位于 javax swing 包 3 主要功能 创建一个标签按钮 当按下该按钮时 应用程序能执行某项动作 构造函数 JButton String label 构造一个带指定标签的按钮 主要方法 public void setText String text 设置按钮的文本 TextField 类位于 java awt 包 4 主要功能 TextField 对象是允许编辑单行文本的文本组件 构造函数 public TextField 构造新文本字段 主要方法 public String getText 返回此文本组件表示的文本 局域网中远程桌面监控系统的设计与实现 第 5 章 TextArea 类位于 java awt 包 5 主要功能 TextArea 对象是显示文本的多行区域 构造函数 public TextArea 构造一个将空字符串作为文本的新文本区 主要方法 public void append String str 将给定文本追加到文本区的当前文本 SyatemTray 类位于 java awt 包 6 主要功能 SystemTray 类表示桌面的系统托盘 主要方法 public static SystemTray getSystemTray 获取表示系统托盘的 SystemTray 实例 public void add TrayIcon trayIcon 将 TrayIcon 添加到 SystemTray 一 旦添加了托盘图标 就可以在系统托盘中看到它 TrayIcon 类位于 java awt 包 7 主要功能 TrayIcon 对象表示可以添加到系统托盘的托盘图标 构造函数 public TrayIcon Image image 创建带有指定图像的 TrayIcon 主要方法 public void setImageAutoSize boolean autosize 设置自动调整大小的属 性 ImageIcon 类位于 javax swing 包 8 主要功能 根据 Image 绘制 Icon 构造函数 public ImageIcon String filename 根据指定的文件创建一个 ImageIcon 主要方法 局域网中远程桌面监控系统的设计与实现 第 5 章 public Image getImage 返回此图标的 Image InetAddress 类位于 包 9 主要功能 此类表示互联网协议 IP 地址 主要方法 public static InetAddress getLocalHost 返回本地主机的 IP 地址 public String getHostAddress 返回 IP 地址字符串 以文本表现形式 public String getHostName 获取此 IP 地址的主机名 GregorianCalendar 类位于 java util 包 10 主要功能 提供了世界上大多数国家 地区使用的标准日历系统 构造函数 public GregorianCalendar 使用当前时间构造默认的 GregorianCalendar 主要方法 public int get int field 返回给定日历字段的值 5 2 2 配置管理模块中的扫描可连主机功能 1 程序流程图与运行效果图 扫描可连主机功能程序流程如图 5 4 所示 它的主要功能是根据用户 输入的 IP 地址段逐个 IP 扫描可连接的远程主机 并将扫描结果写入主界 面的多行文本框中 当用户点击基本操作界面中的拉开按钮 将扩展程序 主界面用来显示扫描功能 运行效果如图 5 5 所示 在基本操作界面中又 增加了四个单行文本框和一个 开始 按钮 原来的 拉开 按钮变成了 收起 按钮 2 实现扫描可连主机功能的关键步骤如下 编写 开始 按钮的事件处理方法 该方法从相应文本框中获取 1 用户输入的 IP 地址段和端口号 并对 IP 地址段中的所有 IP 逐个进行连接 判断其可连接性 局域网中远程桌面监控系统的设计与实现 第 5 章 利用 TextArea 类的 public void append String str 方法将扫描结果写 2 入 TextArea 中 图 5 4 主控端基本操作界面 是否 否 否 是 是 开始 输入扫描端口号 输入起始 IP 地 址 输入结束 IP 地 址 监听 扫描 按钮 获得起始 IP 地址 可连接 断开连接 IP 地址 1 与 IP 地址连接 大于结束 IP 地址 结束 按钮按下 局域网中远程桌面监控系统的设计与实现 第 5 章 图 5 5 主控端基本操作界面 3 类 构造函数和主要方法介绍 扫描可连主机功能中用到的类主要有 Socket SocketAddress InetSocketAddress OutputStream ObjectOutputSt ream Socket 类位于 包 1 主要功能 实现套接字 构造函数 Socket 通过系统默认类型的 SocketImpl 创建未连接套接字 主要方法 public void setSoLinger boolean on int linger 启用 禁用具有指定逗留时 间 局域网中远程桌面监控系统的设计与实现 第 5 章 public void connect SocketAddress endpoint 将此套接字连接到服务器 public OutputStream getOutputStream 返回此套接字的输出流 SocketAddress 类位于 包 2 主要功能 此类表示不带任何协议附件的 Socket Address 在这里 InetSocketAddress 返回此类对象 InetSocketAddress 类位于 包 3 主要功能 此类实现 IP 套接字地址 IP 地址 端口号 构造函数 public InetSocketAddress InetAddress addr int port 根据 IP 地址和端口 号创建套接字地址 OutputStream 类位于 java io 包 4 主要功能 输出流接受输出字节并将这些字节发送到某个接收器 主要方法 public void close 关闭此输出流并释放与此流有关的所有系统资源 ObjectOutputStream 类位于 java io 包 5 主要功能 将 Java 对象的基本数据类型和图形写入 OutputStream 构造函数 public ObjectOutputStream OutputStream out 创建写入指定 OutputStream 的 ObjectOutputStream 主要方法 public final void writeObject Object obj 将指定的对象写入 ObjectOutputStream 5 2 3 显示远程桌面模块中的桌面显示功能 1 程序流程图与运行效果图 局域网中远程桌面监控系统的设计与实现 第 5 章 远程桌面显示功能程序流程如图 5 6 所示 它的主要功能是将接收到 的图片数据解码并绘制到创建的组件上 它能够根据组件的大小缩放图片 并可以在程序运行时改变组件的大小 使整个系统更具灵活性 运行效果 如图 5 7 所示 除了用 JPanel 组件显示图片外 还增加了一个按钮组件和 一个滑块组件用于远程控制 在附属功能中详述 否 是 开始 创建图片显示组件 读取输入流数据 解码 JPEG 图片 绘制图片到组件 关闭 结束 图 5 6 桌面显示功能程序流程图 局域网中远程桌面监控系统的设计与实现 第 5 章 图 5 7 远程桌面显示界面 2 实现远程桌面显示功能的关键步骤如下 编写 ReceiveImageThread 类实现 Runnable 接口 覆盖 public void 1 run 方法 这是创建线程的一个必要条件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 程序文件考试题及答案
- 2025新媒体课程集体备课心得体会
- 园艺景观照明设计创新创业项目商业计划书
- 物联网设备资产管理平台创新创业项目商业计划书
- 施工机械环保运行管理体系与措施
- 校园防欺凌防性侵法律援助团队职责
- 2025年度电机行业国际市场拓展合作合同
- 2025年度材料质量保证合同补充协议范本
- 2025版砂石材料行业环保技术创新与推广合同
- 2025版酒店装修与设备采购居间服务合同
- 高原病的预防与适应
- 马克思主义政治经济学第7章剩余价值的分配
- 成品出货检验报告模板
- 2023年中考语文一轮复习:语段综合专项练习题汇编(含答案)
- 香豆素抗凝血药华法林及其类似物的合成
- 长江上游黄河上中游地区天然林资源保护工程实施方案
- GB/T 5453-1997纺织品织物透气性的测定
- GB/T 14315-2008电力电缆导体用压接型铜、铝接线端子和连接管
- 农民工工资表(模板)
- 《室内空间设计》第三章课件
- 学习《北方民族大学学生违纪处分规定(修订)》课件
评论
0/150
提交评论