`

JAVA的远程控制系统(远程监控)实现

阅读更多

在公司,无聊之际,看到网上关于Robot()类的使用,随想自己实现一个简单的监控系统。这个监控系统没有实现远程的控制操作,只是简单的客户端可以看到远程看到服务器的桌面。另外我在机房局域网测试的时候,发现客户端发现服务器的改变需要5-10秒的时间。不知原因为何?

java 代码
  1. /* 
  2.   客户端的实现:主要实现的功能是从服务器得到服务器桌面的图片,并进行显示。 
  3. */  
  4. import java.awt.*;  
  5. import javax.swing.*;  
  6. import java.awt.event.*;  
  7. import java.util.*;  
  8. import java.util.Timer;  
  9. import java.io.IOException;  
  10. import java.net.*;  
  11. public class Client extends JFrame  
  12. {  
  13.  private java.net.Socket cs;  
  14.         private MyPanel mypanel;  
  15.  public Client()  
  16.  {  
  17.   mypanel=new MyPanel();  
  18.   this.getContentPane().add(mypanel);  
  19.     
  20.   this.clock.start();  
  21.   this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);  
  22.  }  
  23.  public static void main(String[] args)  
  24.  {  
  25.   Client client = new Client();  
  26.   client.setSize(800800);  
  27.   client.setVisible(true);  
  28.    
  29.  }  
  30.     private javax.swing.Timer clock=new javax.swing.Timer(1000,new ActionListener() {  
  31.   public void actionPerformed(ActionEvent e)  
  32.   {  
  33.    try  
  34.    {  
  35.          cs=new java.net.Socket("192.168.0.3"12000);  
  36.     Image image=javax.imageio.ImageIO.read(cs.getInputStream());  
  37.     mypanel.setImage(image);  
  38.     mypanel.repaint();  
  39.     cs.close();  
  40.    } catch (UnknownHostException e2)  
  41.    {  
  42.       
  43.     e2.printStackTrace();  
  44.    } catch (IOException e2)  
  45.    {  
  46.       
  47.     e2.printStackTrace();  
  48.    }  
  49.      
  50.      
  51.   }  
  52.        
  53.     });  
  54.  public void drawImage()  
  55.  {  
  56.     
  57.  }  
  58. }  
  59. class MyPanel extends JPanel  
  60. {  
  61.  private Image image;  
  62.  public MyPanel(Image image)  
  63.  {  
  64.     this.image=image;   
  65.  }  
  66.    public void setImage(Image image)  
  67.    {  
  68.     this.image=image;  
  69.    }  
  70.  public MyPanel()  
  71.  {  
  72.   // TODO 自动生成构造函数存根  
  73.  }  
  74.  public void paintComponent(Graphics g)  
  75.  {  
  76.   g.drawImage(image, 00null);  
  77.  }  
  78. }  
  79. /*********************************************************************** 
  80. *************************************************************************/  
  81. /* 
  82.  服务器端的实现: 
  83.   主要实现采集服务器的桌面,并多线程实现给客户端的发送 
  84. */  
  85. import java.io.IOException;  
  86. import java.net.ServerSocket;  
  87. import java.net.Socket;  
  88. public class Server  
  89. {  
  90.     private final static int PORT = 12000;  
  91.     public static void main(String[] args)  
  92.     {  
  93.  try  
  94.  {  
  95.      ServerSocket server = new ServerSocket(PORT);  
  96.      Socket connection = null;  
  97.      while (true)  
  98.      {  
  99.   try  
  100.   {  
  101.      new ShotThread(server).start();  
  102.   } finally  
  103.   {  
  104.       try  
  105.       {  
  106.    if (connection != null)  
  107.        connection.close();  
  108.       } catch (IOException e)  
  109.       {  
  110.       }  
  111.   }  
  112.      }  
  113.  } catch (IOException ee)  
  114.  {  
  115.      System.err.println(ee);  
  116.  }  
  117.     } // end main  
  118. }  
  119. /** 
  120.  * 多线程的连接: 
  121.  * 
  122.  */  
  123. class ShotThread extends Thread  
  124. {  
  125.     ServerSocket server;  
  126.     public ShotThread(ServerSocket server)  
  127.     {  
  128.  try  
  129.  {  
  130.      this.connection = server.accept();  
  131.  } catch (IOException e)  
  132.  {  
  133.      e.printStackTrace();  
  134.  }  
  135.     }  
  136.     public void run()  
  137.     {  
  138.  System.out.println("得到连接:");  
  139. // try  
  140. // {  
  141. //    // this.sleep(500);  
  142. // } catch (InterruptedException e2)  
  143. // {  
  144. //     //  
  145. //     e2.printStackTrace();  
  146. // }  
  147.  java.awt.image.BufferedImage image = (new ShotImage()).snapShot();  
  148.  if (image == null)  
  149.      try  
  150.      {  
  151.   throw new IOException();  
  152.      } catch (IOException e1)  
  153.      {  
  154.   // TODO 自动生成 catch 块  
  155.   e1.printStackTrace();  
  156.      }  
  157.  try  
  158.  {  
  159.     
  160.      javax.imageio.ImageIO.write(image, "jpg", connection  
  161.       .getOutputStream());  
  162.      connection.close();  
  163.  } catch (IOException e)  
  164.  {  
  165.      e.printStackTrace();  
  166.      
  167.  }  
  168.     }  
  169.     Socket connection = null;  
  170. }  
  171. /************************************************************************ 
  172. *************************************************************************/  
  173. /* 
  174.  图片采集的代码 
  175. */  
  176.    
  177.   
  178. import java.awt.Dimension;  
  179. import java.awt.Rectangle;  
  180. import java.awt.Robot;  
  181. import java.awt.Toolkit;  
  182. import java.awt.image.BufferedImage;  
  183. public class ShotImage  
  184. {  
  185.  private Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();  
  186.  private String imageFormat = "jpg";  
  187.  private int Num = 0;  
  188.  BufferedImage screenshot;  
  189.  public synchronized  BufferedImage snapShot()  
  190.  {  
  191.   try  
  192.   {  
  193.    screenshot = (new Robot()).createScreenCapture(new Rectangle(00,  
  194.    (int) dimension.getWidth(), (int) dimension.getHeight()));  
  195.   } catch (Exception ex)  
  196.   {  
  197.    System.out.println(ex);  
  198.   }  
  199.   return screenshot;  
  200.  }  
  201. }  
分享到:
评论
5 楼 renovatio 2012-08-01  
4 楼 cynan168 2009-12-03  
很好,很强大
3 楼 xiaobin268 2008-11-20  
为什么运行就黑屏呢
2 楼 konglq 2007-11-02  
不错啊,什么时候能改好啊,给我们参考参考啊。
1 楼 anywalker 2007-10-27  

很好
谢谢
但是有个问题,就是Client接到的效果不是很好,
没有缩放,而且图像重叠。
我现在要改进一下

相关推荐

    基于JAVA CS远程监控系统软件的实现源代码

    基于Java CS远程监控系统软件的设计与实现项目是一款基于Java语言开发的远程监控软件,主要应用Java Socket和Java AWT等技术,实现对远程设备的实时监控和控制。该系统可为企业、学校、政府等单位提供便捷和安全的...

    基于JAVA CS远程监控系统软件的实现(源代码+WORD论文文档论文).zip

    基于JAVA CS远程监控系统软件的实现(源代码+WORD论文文档论文) 基于JAVA C/S远程监控系统软件的实现 摘 要 近年来,网络技术的不断发展,为远程监控技术的发展创造了条件。远程监控系统软件越来越受到人们的重视,...

    java 远程监控系统

    int choice = JOptionPane.showConfirmDialog(null, "请求控制对方电脑", "远程控制系统-Charles", JOptionPane.YES_NO_OPTION); if (choice == JOptionPane.NO_OPTION) { return; } String input =...

    基于JAVA实时监控远程控制系统设计和实现.docx

    基于JAVA实时监控远程控制系统设计和实现.docx基于JAVA实时监控远程控制系统设计和实现.docx基于JAVA实时监控远程控制系统设计和实现.docx基于JAVA实时监控远程控制系统设计和实现.docx基于JAVA实时监控远程控制系统...

    基于JAVA CS远程监控系统软件的实现.rar

    基于Java的CS远程监控系统软件是一种用于监控和管理...通过以上设计与实现,基于Java的CS远程监控系统软件能够帮助管理员实现对大量计算机设备的实时监控和远程管理,提高管理效率和响应速度,保障系统安全和稳定运行。

    基于JAVA CS远程监控系统软件的实现

    基于JAVA的CS远程监控系统软件可以实现对远程计算机的监控和控制,其主要功能包括: 远程监控:通过该软件,可以实时监控远程计算机的屏幕、键盘和鼠标操作等。 远程控制:通过该软件,可以对远程计算机进行远程...

    远程监控实现原理

    简介屏幕监控的实现原理,文档中有部分核心算法伪代码

    java远程监控源码

    java实现简单的远程控制,附源码。 主要应用socket robot image swing

    基于JAVA CS远程监控系统软件的实现(源代码+说明文档).zip

    基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础...

    JAVA远程监控系统JSN2.1

    有源码 , 著名的 java 远程监控程序JSN,结合了N种设计模式,功能强大,功能特点:隐蔽运行,桌面图像监控,鼠标键盘控制,文件上传,下载,远程重启,关机。邮件通知,WEB监控,等等,附有详细的使用教程。 程序易...

    基于java的远程监控系统的设计与实现【文献综述】.pdf

    文献综述 计算机科学与技术 基于 java 的远程监控系统的设计与实现 一、前言 近年来,随着计算机及网络的应用普及,千千万万的人们在娱乐、通讯、学习、工作等 各方面都实现了前所未有的信息化,极大地提高了生活...

    基于JAVA网络远程监控系统软件的实现(源码)

    基于JAVA网络远程监控系统软件的实现(源码),可直接导入eclipse,服务器,客户端均可用。可上传、下载文件,类单独封装,代码注释详细,可同时连接多个。

    基于JAVA CS远程监控系统软件的实现(源代码+论文)

    通过远程监控软件,我们可以进行很多方面的远程控制,包括获取目标电脑屏幕图像、窗口及进程列表;记录并提取远端键盘事件(击键序列,即监视远端键盘输入的内容);可以打开、关闭目标电脑的任意目录并实现资源共享;...

    毕业设计-基于JAVA CS远程监控系统软件的实现(源代码+论文)

    基于JAVA C/S远程监控系统软件突破了空间的限制,使用者不用亲临,在自己的电脑面前就能轻松的实现对被监控端机器的监控。本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础...

    【毕业设计】局域网中远程桌面监控系统的设计与实现

    该系统对远程主机的监控主要包括:实时监视桌面状态、修改系统配置文件、控制鼠标、键盘的基本操作。本系统采用Java语言实现,开发工具采用NetBeansIDE6.7开发。 本文介绍了局域网中远程桌面监控系统的分析、设计和...

    Java远程监控系统设计及功能介绍.doc

    要实现Java远程监控 系统, 主要是通过以下几个功能设计实现。 Socket 1.Socket,ServerSocket Socket位于java.net.包中,是网络通信重要的类,Socket中文称它为套接 字,ServerSocket 构造一对通信套接字方法如下 ...

    基于JAVA CS远程监控系统软件的实现的毕业设计,使用JAVA语言进行开发,并采用CS架构,即客户端-服务器架构

    本毕设旨在实现一款基于JAVA CS架构的远程监控系统软件。该软件将具备以下功能: 1. 实现远程主机的监控和控制:用户可以通过该软件远程监控和控制目标主机的状态和操作。 2. 实现实时屏幕监控和录制:用户可以实时...

Global site tag (gtag.js) - Google Analytics