ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:312.92KB ,
资源ID:6643003      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6643003.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(视频传输与远程控制.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

视频传输与远程控制.docx

1、视频传输与远程控制视频传输与远程控制课程报告学 院 实验学院 专 业 电子信息工程 组 员 张欢 宋冶 蒋烨 学 号 07521233 07521218 07521302 指导教师 郑鲲 日 期 2010 年11 月 8日 目录一、远程控制介绍: 3二、设计目标: 3三、系统总体设计与功能结构: 3(一)、主控端系统设计与功能结构: 41、显示远程桌面模块的功能结构: 42、远程控制模块: 5(二)、被主控端系统设计与功能结构: 51、发送桌面信息模块: 52、响应控制模块: 6四、系统实现: 6(一)、系统实现思路: 6(二)、系统流程图: 7(三)软件实现: 71、主控端程序: 72、被控

2、端程序: 8程序代码: 10心得体会: 13一、远程控制介绍:远程控制技术是指用本地计算机通过网络去控制一台或多台远程主机的技术。当用户使用本地计算机控制远程主机时,就如同坐在远程主机的屏幕前一样,可以启动远程主机的应用程序,可以使用远程主机的文件资料,甚至可以利用远程主机的外部打印设备和通信设备来进行打印和访问互联网。远程控制系统一般分为客户端程序和服务端程序两大部分,使用前要将客户端按在本地计算机上,将服务端程序安装在远程主机上。在本地计算机上执行客户端程序,向远程主机中的服务端程序发出信号,建立一个特殊的远程服务,在通过这个远程服务使用各种远程控制功能发送远程控制命令,控制远程主机中的各

3、种应用程序运行。二、设计目标:能够随时对局域网中的主机惊醒远程监控。实时性高、通信量小、界面友好、操作简单、功能齐全并有一定的安全措施。系统基本框架:在支持TCP/IP协议的局域网中,本地计算机与远程主机通过物理网络相连。远程主机运行倍空段程序,坚挺固定端口等待连接;本地计算机运行主控端程序,连接指定端口。连短的程序通过套接字Socket建立连接并通过Socket输入输出流收发信息,实现件事和控制功能。 图2-1 系统基本框图三、系统总体设计与功能结构:总体功能结构包括主控端和被控端两大部分。其中主控端包括三大模块,即:本地的配置管理模块、接收远程主机发送的桌面信息并绘制到组件显示,实现监视功

4、能模块和发送控制信息实现对远程主机的控制功能模块;被控端也包括三大模块,即:本地配置管理模块、获取并发送桌面图片为主控端的件事提供信息服务模块和响应主控端的控制请求模块,按控制信息进行指定的操作。 图3-1 总体功能结构(一)、主控端系统设计与功能结构:主控端程序是远程桌面监控系统两大组成部分之一,他要实现对远程主机的基本件事功能,在控制功能上还要对各个细节加以实现。除此之外,还要实现系统的基本配置功能,这都增加了程序的复杂性。对系统分块处理时降低其复杂性的有效方法,本系统将主控端程序分为三大模块,逐一实现。图3-2主控端配置管理模块1、显示远程桌面模块的功能结构:它是主控端的核心部分,不仅需

5、要读取输入流中的数据并解码,而且要将图片绘制到自己创建的容器中。图3-3主控端显示远程桌面模块2、远程控制模块:主要实现对远程主机的鼠标和键盘进行控制。图3-4主控端远程控制模块(二)、被主控端系统设计与功能结构:被控端程序同主控端程序一样也是远程桌面监控系统的重要组成部分,他不仅要抓取桌面图片,并且编码后发送到输出流,还要按照主控端的控制请求执行相应操作。图3-5被控端配置管理模块1、发送桌面信息模块:为减少通信量,抓取图片后都遇上一次抓取的图片进行比较,如果相同则不发送,反之再发送。 图3-6 被控端发送桌面信息模块2、响应控制模块:根据主控端的控制信息,执行相应的键盘和鼠标操作。图3-7

6、 响应控制模块四、系统实现:(一)、系统实现思路:首先被控端监听设定的端口,等待主控端的链接请求。主控端链接指定端口,与被控端建立连接后被控端抓取桌面图像,编码后发送。主控端接受图像,解码后绘制到组件上显示。主控端发送控制请求,被控端响应请求并按控制信息进行相应操作。(二)、系统流程图:图4-1 程序总体流程图(三)软件实现:1、主控端程序:主控端程序包括远程桌面监控线程和配置管理线程。(1)、配置管理模块:主要功能是接受用户输入的数据,定义远程主机的IP和端口号。、流程图:图4-2 主控端程序流程图(2)、远程桌面显示模块:主要功能是将接收到的图片数据解码并绘制到创建的组件上。能根据组件的大

7、小缩放图片,并在程序运行时改变组件的大小。、流程图:图4-3 远程桌面显示模块流程图、运行效果:图4-4 运行结果2、被控端程序:被控端程序包括配置管理线程、端口监听线程和图片发送线程。(1)、配置管理模块:主要功能是根据用户的操作改变被控端的系统设置。、流程图:图4-5 被控端程序流程图(2)、发送桌面信息模块:主要功能是定时抓取桌面图片,编码后写入输出流。图4-6 发送桌面信息模块流程图(3)、响应控制模块:主要功能是根据主控端的控制信息,执行相应的键盘和鼠标操作。程序代码: public class Server extends Thread private Dimension scre

8、enSize; private Rectangle rectangle; private Robot robot; public Server() screenSize = Toolkit.getDefaultToolkit().getScreenSize(); rectangle = new Rectangle(screenSize);/ 可以指定捕获屏幕区域 try robot = new Robot(); catch (Exception e) e.printStackTrace(); System.out.println(e); public void run() ZipOutputS

9、tream os = null; Socket socket = null; while (true) try socket = new Socket(192.168.1.100, 5001);/ 连接远程IP BufferedImage image = robot.createScreenCapture(rectangle);/ 捕获制定屏幕矩形区域 os = new ZipOutputStream(socket.getOutputStream();/ 加入压缩流 / os = new ZipOutputStream(new FileOutputStream(C:/1.zip); os.se

10、tLevel(9); os.putNextEntry(new ZipEntry(test.jpg); JPEGCodec.createJPEGEncoder(os).encode(image);/ 图像编码成JPEG os.close(); Thread.sleep(50);/ 每秒20帧 catch (Exception e) e.printStackTrace(); finally if (os != null) try os.close(); catch (Exception ioe) if (socket != null) try socket.close(); catch (IOEx

11、ception e) public static void main(String args) new Server().start(); public class Client extends JFrame private static final long serialVersionUID = 1L; Dimension screenSize; public Client() super(); screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.setSize(800, 640); Screen p = new Sc

12、reen(); Container c = this.getContentPane(); c.setLayout(new BorderLayout(); c.add(p, SwingConstants.CENTER); new Thread(p).start(); SwingUtilities.invokeLater(new Runnable() public void run() setVisible(true); ); public static void main(String args) new Client(); class Screen extends JPanel impleme

13、nts Runnable private static final long serialVersionUID = 1L; private Image cimage; public void run() ServerSocket ss = null; try ss = new ServerSocket(5001);/ 探听5001端口的连接 while (true) Socket s = null; try s = ss.accept(); ZipInputStream zis = new ZipInputStream(s .getInputStream(); zis.getNextEntry

14、(); cimage = ImageIO.read(zis);/ 把ZIP流转换为图片 repaint(); catch (Exception e) e.printStackTrace(); finally if (s != null) try s.close(); catch (IOException e) e.printStackTrace(); catch (Exception e) finally if (ss != null) try ss.close(); catch (IOException e) e.printStackTrace(); public Screen() super(); this.setLayout(null); public void paint(Graphics g) super.paint(g); Graphics2D g2 = (Graphics2D) g; g2.drawImage(cimage, 0, 0, null); 心得体会:通过本门课程的学习,我对远程控制的知识有了一些了解,在网上和书中查阅资料的过程中,让我了解了远程控制的基本原理与基本组成。在完成大作业的过程中,遇到一些问题,经过小组成员相互讨论和请教同学之后,将问题解决。增强了我们的自学能力和团队协作精神。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1