在公司,无聊之际,看到网上关于Robot()类的使用,随想自己实现一个简单的监控系统。这个监控系统没有实现远程的控制操作,只是简单的客户端可以看到远程看到服务器的桌面。另外我在机房局域网测试的时候,发现客户端发现服务器的改变需要5-10秒的时间。不知原因为何?
java 代码
-
-
-
- import java.awt.*;
- import javax.swing.*;
- import java.awt.event.*;
- import java.util.*;
- import java.util.Timer;
- import java.io.IOException;
- import java.net.*;
- public class Client extends JFrame
- {
- private java.net.Socket cs;
- private MyPanel mypanel;
- public Client()
- {
- mypanel=new MyPanel();
- this.getContentPane().add(mypanel);
-
- this.clock.start();
- this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
- }
- public static void main(String[] args)
- {
- Client client = new Client();
- client.setSize(800, 800);
- client.setVisible(true);
-
- }
- private javax.swing.Timer clock=new javax.swing.Timer(1000,new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- try
- {
- cs=new java.net.Socket("192.168.0.3", 12000);
- Image image=javax.imageio.ImageIO.read(cs.getInputStream());
- mypanel.setImage(image);
- mypanel.repaint();
- cs.close();
- } catch (UnknownHostException e2)
- {
-
- e2.printStackTrace();
- } catch (IOException e2)
- {
-
- e2.printStackTrace();
- }
-
-
- }
-
- });
- public void drawImage()
- {
-
- }
- }
- class MyPanel extends JPanel
- {
- private Image image;
- public MyPanel(Image image)
- {
- this.image=image;
- }
- public void setImage(Image image)
- {
- this.image=image;
- }
- public MyPanel()
- {
-
- }
- public void paintComponent(Graphics g)
- {
- g.drawImage(image, 0, 0, null);
- }
- }
-
-
-
-
-
-
- import java.io.IOException;
- import java.net.ServerSocket;
- import java.net.Socket;
- public class Server
- {
- private final static int PORT = 12000;
- public static void main(String[] args)
- {
- try
- {
- ServerSocket server = new ServerSocket(PORT);
- Socket connection = null;
- while (true)
- {
- try
- {
- new ShotThread(server).start();
- } finally
- {
- try
- {
- if (connection != null)
- connection.close();
- } catch (IOException e)
- {
- }
- }
- }
- } catch (IOException ee)
- {
- System.err.println(ee);
- }
- }
- }
-
-
-
-
- class ShotThread extends Thread
- {
- ServerSocket server;
- public ShotThread(ServerSocket server)
- {
- try
- {
- this.connection = server.accept();
- } catch (IOException e)
- {
- e.printStackTrace();
- }
- }
- public void run()
- {
- System.out.println("得到连接:");
-
-
-
-
-
-
-
-
- java.awt.image.BufferedImage image = (new ShotImage()).snapShot();
- if (image == null)
- try
- {
- throw new IOException();
- } catch (IOException e1)
- {
-
- e1.printStackTrace();
- }
- try
- {
-
- javax.imageio.ImageIO.write(image, "jpg", connection
- .getOutputStream());
- connection.close();
- } catch (IOException e)
- {
- e.printStackTrace();
-
- }
- }
- Socket connection = null;
- }
-
-
-
-
-
-
-
- import java.awt.Dimension;
- import java.awt.Rectangle;
- import java.awt.Robot;
- import java.awt.Toolkit;
- import java.awt.image.BufferedImage;
- public class ShotImage
- {
- private Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
- private String imageFormat = "jpg";
- private int Num = 0;
- BufferedImage screenshot;
- public synchronized BufferedImage snapShot()
- {
- try
- {
- screenshot = (new Robot()).createScreenCapture(new Rectangle(0, 0,
- (int) dimension.getWidth(), (int) dimension.getHeight()));
- } catch (Exception ex)
- {
- System.out.println(ex);
- }
- return screenshot;
- }
- }
分享到:
相关推荐
基于Java CS远程监控系统软件的设计与实现项目是一款基于Java语言开发的远程监控软件,主要应用Java Socket和Java AWT等技术,实现对远程设备的实时监控和控制。该系统可为企业、学校、政府等单位提供便捷和安全的...
Java作为一种跨平台的编程语言,提供了多种方法来实现远程控制功能。本篇文章将详细探讨如何使用Java来实现这一目标。 首先,我们需要理解Java中的远程方法调用(Remote Method Invocation,简称RMI)。RMI是Java...
这篇名为“Java远程控制简单实现”的博客文章可能探讨了如何利用Java技术实现远程控制系统。远程控制通常涉及通过网络对远程计算机进行操作,这在系统管理、自动化任务执行以及分布式系统通信中非常常见。 首先,...
Java网络远程监控系统是一种能够实时收集、分析和管理分布在不同地理位置的计算机系统状态的软件解决方案。这个基于JAVA的网络远程监控系统提供了强大的功能,包括硬件性能监控、软件运行状况检查、网络流量分析以及...
Java 远程控制技术是利用 Java 的网络编程能力来实现在不同计算机间进行交互操作的一种技术。在 Java 中,远程控制通常涉及到 RMI (Remote Method ...理解并掌握这些技术,能帮助开发者构建强大、安全的远程控制系统。
总的来说,Java远程控制程序通过Java RMI技术实现了跨越网络的通信,它在分布式系统中有广泛的应用,例如远程监控、系统管理、自动化任务调度等。通过深入学习和实践,你可以掌握这种强大的工具,提升你的IT技能。
客户端接收到这些命令后,在本地模拟执行,从而实现远程控制。 此外,考虑到权限和安全性,该系统应该包含一种机制让远程用户可以选择接受或拒绝控制请求。这可以通过设置权限验证或者建立会话密钥来实现。例如,...
根据文件提供的信息,我们可以从中提炼出多个关于JAVACS远程监控系统软件实现相关的知识点。以下为详细知识点内容: 1. Java语言与JAVACS远程监控系统的关联 JAVACS远程监控系统是使用Java语言开发的,这可能是因为...
【标题】"基于Java的远程屏幕监控系统"揭示了这个项目的核心是利用Java编程语言来实现一个能够远程监控用户屏幕的应用。这样的系统通常用于远程协助、教育、安全监控或者企业管理等场景,允许管理员或授权用户实时...
Java程序可以做到“一次编写,处处运行”,这意味着Java远程控制软件可以在不同操作系统上无缝运行,无需为每个平台单独编译,极大地增强了软件的实用性和兼容性。 #### 3. 实现远程控制的Java技术细节 ##### 3.1 ...
标题中的“java开发的一...总的来说,这个Java开发的Windows远程监控软件结合了Java编程语言的跨平台优势,实现了对Windows系统的远程监控功能,涵盖了多种监控及管理操作,并且在开发过程中可能运用了多种技术和工具。
**远程监控实现** 在Java中实现远程监控,通常会创建一个服务端应用,该应用包含需要监控的组件(如MBeans)和暴露管理接口。客户端通过RMI或JMX连接到服务端,获取监控数据或者执行控制命令。服务端需要开启一个RMI...
Java远程控制后端源码是实现远程操作和管理软件系统的一种技术,主要涉及Java RMI(Remote Method Invocation)和SSH(Secure Shell)等协议。在Java中,远程控制通常指的是通过网络连接到另一台计算机,并执行该...
基于JAVA CS远程监控系统软件的实现(源代码+WORD论文文档论文) 基于JAVA C/S远程监控系统软件的实现 摘 要 近年来,网络技术的不断发展,为远程监控技术的发展创造了条件。远程监控系统软件越来越受到人们的重视,...
本项目名为“基于Java远程监控软件”,显然,它采用Java编程语言来实现这一功能,这涉及到Java的网络编程、多线程、IO流等核心技术。下面将详细解析这些知识点。 首先,Java作为跨平台的编程语言,其Java SE(标准...
int choice = JOptionPane.showConfirmDialog(null, "请求控制对方电脑", "远程控制系统-Charles", JOptionPane.YES_NO_OPTION); if (choice == JOptionPane.NO_OPTION) { return; } String input =...
【标题】:“Java远程屏幕监控系统”是一种利用Java编程语言实现的远程监控解决方案,它允许用户通过网络实时查看和管理远程计算机的桌面画面。这样的系统在远程协作、技术支持、服务器管理等多个场景中都有广泛的...
《基于JAVA CS远程监控系统软件的实现》是一篇深度探讨Java客户端-服务器(Client-Server,简称CS)架构在远程监控系统中的应用的毕业论文。本文将深入剖析该系统的架构设计、关键技术及其实际应用,旨在为相关领域...
远程桌面监控系统是指通过局域网连接的计算机之间,为了实现远程监控和控制的系统。该系统可以让本地计算机通过局域网访问不同的远程计算机,并对其进行操作。维护人员可以通过本系统实时地监控联网计算机的运行情况...