基于java的远程操控系统.doc_第1页
基于java的远程操控系统.doc_第2页
基于java的远程操控系统.doc_第3页
基于java的远程操控系统.doc_第4页
基于java的远程操控系统.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

2013级学生java课程设计 Java课程设计报告书课题名称基于Java的开发远程协助监控系统的设计姓 名曾旺东学 号1312402-17学 院通信与电子工程学院专 业通信工程指导教师肖湘 讲师2015年 07月09日 一、设计任务及要求:设计目的(1)学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。(2)进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。(3)通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。设计要求(1)问题的描述与程序将要实现的具体功能。(2)程序功能实现的具体设计思路或框架,并检查流程设计。(3)代码实现。(4)程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。指导教师签名: 年 月 日 二、指导教师评语: 指导教师签名: 年 月 日三、成绩 验收盖章 年 月 日 基于Java的开发远程协助监控系统的设计1课程设计的目的 (1)学会Java程序开发的环境搭建与配置,学习和掌握Java程序开发的全过程。 (2)熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。 (3)通过写程序,拓展知识面和锻炼调试能力。2课程设计所要达到的要求 (1)问题的描述与程序将要实现的具体功能。 (2)程序功能实现的具体设计思路或框架,并检查流程设计。 (3)代码实现。 (4)程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。3设计思路及方案论证3.1生成JPEG压缩图像编码、解码的类 在com.sun.image.codec.jpeg类包中,主要应用以下几个类: (1)JPEGCodec:执行JPEG图像编码的类。 (2)JPEGDecodeParm:对压缩的JPEG数据进行解码的类。 (3)JPEGENcondeParam:生成JPEG数据流的压缩编码类,并对其实例化后的对象设置压缩的品质系统。其品质系统对压缩后生成图像的质量有很大影响,品质系数越小,压缩率越高,图像质量越差。反之,品质系数越大,压缩率越低,图像质量越好1。 (4)JPEGImageDecder:从一个输入流InputStream中将压缩了的JPEG图像压到图像换冲区BufferedImage中。 (5)JPEGImageEncoer:压缩图像为JPEG数据流并将其写入到一个输出流OutStream。3.2获取屏幕的分辨率 用Toolkit类的getScreenSize()方法来的到屏幕的分辨率(即屏幕图像的大小) Dimension screen =Toolkit.getDefaultToolkit().get-ScreenSize(); 然后,用下面的语句获取应用程序窗体的大小:Dimension a =frame.getSize(); 其中,setLocation()是frame类继承其父类Component确定容器位置的方法。3.3关于“机器人”Robot类时时监控桌面的方法 “机器人”Robot类是用于产生与本地操作系统有关的底层输入自动控制应用程序运行的。这里应用了由“机器人”Robot类时时监控桌面的方法: /创建一个机器人 Robot robot = new Robot(); 其中,robot是Robot实例化的对象。4系统结构设计4.1系统总体结构 应用程序体系结构是指应用程序内部各组件间的组织方式,目前比较流行的大体上分为两种:客户机/服务器(Client/Sever,简称C/S)2结构和浏览器/服务器(Browser/Server,简称B/S)结构。C/S结构是将数据库内容放在远程的服务器上,在客户机上安装相应软件,是一种两层或三层结构的系统。与B/S结构相比,C/S结构具有以下优势: (1)所有数据都在服务端进行管理,保证了数据的完整性、 可靠性、安全性和易维护性。(2) 客户端有一套完整的应用程序,再出错提示、在线帮助等方面有强大的功能: 对于相同的任务,C/S模版速度大于B/S模式;网络只传输查询结果的信息,大大减轻了网络的负担,数据通信量小。屏幕监控系统是一个远程客户机/服务器系统,程序分为服务器端和客户端两部分。其总体结构如图4.1所示。图4.1 系统总体结构4.2 服务器端程序功能与结构 服务器端程序主要具有以下两个功能:(1)发送自己的屏幕图像;(2)接收客户端传来的控制命令,并执行相应的操作。其结构如图4.2所示。图4.2 接受客户端命令,执行相应操作4.3客户端程序功能与结构 客户端程序主要是接收被控电脑(服务器端)传来的屏幕图像,向被控电脑发送鼠标操作或键盘操作指令。其结构如图4.3所示。图4.3 客户端程序结构5课程设计内容 服务器端程序所用的方法及其功能如表5.1所示。其中,发送屏幕图像方法sendScreen()的工作过程如图5.1所示。表5.1 服务器端程序所用的方法及其功能方法名功能说明main()主函数,建立窗口并安排界面布局ServerTest()构造函数,建立UDP数据报对象sendScreen()按UDP协议发送压缩的屏幕图像数据包run()接收和执行控制命令图5.1 sendScreen()工作过程 /矩形区域的大小 Rectangle rec = new Rectangle(dm); Robot robot = new Robot(); while(true) BufferedImage bufImg = robot.createScreenCapture(rec); ByteArrayOutputStream baos =new ByteArrayOutputStream(); /压缩 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(baos); encoder.encode(bufImg); byte data =baos.toByteArray(); dataOut.writeInt(data.length); dataOut.write(data); dataOut.flush(); Thread.sleep(0); catch(Exception e)e.printStackTrace(); Robot是使“机器人”自动的始终监控远程控制者发来的控制指令数据包3,并实现图片的压缩和打包功能。 客户端程序所用的方法及其功能如表5.2所示,方法调用关系如图5.2所示。表5.2 客户端程序所用的方法及其功能方法名功能方法main()主函数,建立输入被控端IP地址的窗口及显示被控端屏幕图窗口,并设置键盘监听ClientTest()构造方法,设置传送UDP数据报指令的参数,定义向被控端发出截取屏幕图像指令的线程,定义监听鼠标事件dataOut()接收被控端传来的屏幕图像数据getScreen()将接收到的屏幕图像进行解压,还原成图像ImageIcon()绘制被控端的屏幕图像图5.2 方法调用关系 其中,还原屏幕图像方法/还原屏幕图像防范ImageIcon() int len =dis.readInt() ; byte imageData =new bytelen; dis.readFully(imageData); ImageIcon image =new ImageIcon(imageData); backImage.setIcon(image);6程序设计6.1 Client程序设计及注释public class Client private static Component scrollPane;/* * 远程协助系统学生端 * param args * author 旺东 */Public static void main(String args) try/是否控制对方电脑确认框int i= JOptionPane.showConfirmDialog(null, 请求控制对方电脑, 远程协助系统-小东,JOptionPane.YES_NO_CANCEL_OPTION );/如果点击了取消 if(i=JOptionPane.NO_OPTION) return; /如果点击了确定show input String input = JOptionPane.showInputDialog(请输入要连接的服务 器(包括端口号):, 127.0.0.1:10000); /获取服务器主机 String host = input.substring(0,input.indexOf(:); /获取端口号 String port = input.substring(input.indexOf(:)+1); System.out.println(服务器的主机: +host+ 端口号: +port); /连接服务器 Socket client =new Socket(host,Integer.parseInt(port); DataInputStream dis =new DataInputStream(client.getInputStream(); /创建面板 JFrame jframe =new JFrame(); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jframe.setTitle(远程协助系统-小东); jframe.setSize(1024, 768); /读取服务器的屏幕的分辨率 double height =dis.readDouble(); double width =dis.readDouble(); Dimension ds = new Dimension(int)width,(int)height); /设置 jframe.setSize(ds); /将服务器作为我们的背景 JLabel backImage =new JLabel(); JPanel panel =new JPanel(); /需要滚动条 JScrollPane scrollPane =new JScrollPane(panel); panel.setLayout(new FlowLayout(); panel.add(backImage); jframe.add(scrollPane); jframe.setAlwaysOnTop(true); jframe.setVisible(true); while(true) int len =dis.readInt() ; byte imageData =new bytelen; dis.readFully(imageData); ImageIcon image =new ImageIcon(imageData); backImage.setIcon(image); /从新绘制新的面板 jframe.repaint(); catch(Exception e)e.printStackTrace();6.2 Server程序设计及注释Public class Server /* * author 旺东 * 远程协助的教师端 * param args */Public static void main(String args) try/建立服务器监听10000 ServerSocket ss = new ServerSocket(10000);While(true) System.out.println(正在连接.); /等待连接 Socket client = ss.accept(); System.out.println(连接成功.); /通过socket获取输出流 OutputStream os = client.getOutputStream(); /转换至二进制的流 DataOutputStream doc = new DataOutputStream(os); ScreenThread screenThread = new ScreenThread(doc); /启动线程 screenThread.start(); catch(Exception e)e.printStackTrace(); class ScreenThread extends Thread /数据的输出流 priate DataOutputStream dataOut; Public ScreenThread(DataOutputStream dataOut) this.dataOut = dataOut; /启动线程 开始传输 Public void run() Toolkit tk = Toolkit.getDefaultToolkit(); Dimension dm = tk.getScreenSize(); try /获取教师端的分辨率 发给学生段 dataOut.writeDouble(dm.getHeight(); dataOut.writeDouble(dm.getWidth(); dataOut.flush(); /矩形区域的大小 Rectangle rec = new Rectangle(dm); Robot robot = new Robot(); While(true) BufferedImage bufImg = robot.createScreenCapture(rec); ByteArrayOutputStream baos =new ByteArrayOutputStream(); /压缩 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(baos); encoder.encode(bufImg); byte data =baos.toByteArray(); dataOut.writeInt(data.lengt

温馨提示

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

评论

0/150

提交评论