java 写的屏幕远程监控程序

以前都是从网上下载一些远程监控软件,无聊之余,自己也在想能不能用java开发一个远程监控软件呢,经过思考和测试也算小有收获,下面就来介绍一下开发的步骤和思路。

思路:

  要想实现远程监控,肯定是需要一个被控端和控制端,被控端的任务就是将机器的实时画面传送到控制端。相反,控制端就是要实时接收被控端传过来的信息,并对其处理。

先来看一下效果吧:

图片

图片

图片

图片

图片

源代码:

  被控端程序(client.java)

package com.wdw.client;

import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import org.omg.CORBA.Environment;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;


public class Client extends Thread{

private Socket socket = null;
private BufferedImage image;
private JPEGImageEncoder encoder ;

public Client(){
  getInstant();
}

/**
  * 单例模式
  * @return
  */
public synchronized Socket getInstant() {
  System.out.println("正在连接服务器");
  if(socket==null)
  {
   try {
    socket = new Socket("192.168.1.101",8989);
   } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    System.out.println("找不到服务器....");
    e.printStackTrace();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  System.out.println("服务器连接成功");
 
  return socket;
}
/**
  * 线程启动……
  */
public void run()
{
  int i=0;
  while(true)
  {
   try {
    System.out.println(i++);
    image = getDeskTop();
    sendImage(image);
    Thread.sleep(10000);
   
   
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
}

/**
  * 获取桌面信息
  * @return
  * @throws Exception
  */
public BufferedImage getDeskTop()throws Exception
{
  Robot robot = new Robot();
  Rectangle re = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
 
  return robot.createScreenCapture(re);
}

/**a
  * 发送图片到服务器
  * @param image
  * @throws Exception
  */
public void sendImage(BufferedImage image)throws Exception
{
   encoder = JPEGCodec.createJPEGEncoder(socket.getOutputStream());
   encoder.encode(image);
}
public void stopSend()
{
  try {
   Thread.yield();
   socket.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}

public static void main(String[] args)throws Exception
{
  Client client = new Client();
 
  Thread t = new Thread(client);
  t.start();
}
}


控制端程序(server.java)

package com.wdw.server;

import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

import  com.sun.image.codec.jpeg.JPEGImageDecoder;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

import com.sun.image.codec.jpeg.JPEGCodec;

public class Server {

public static void main(String[] args)throws Exception
{
  System.out.println("打开服务器…………");
   ServerSocket ss = new ServerSocket(8989);
   int i=0;
   System.out.println("服务器开启正常…………");
   System.out.println("服务器正在接收桌面图片…………");
   Socket st = ss.accept();
   while(true)
   {
   JPEGImageDecoder jid = JPEGCodec.createJPEGDecoder(st.getInputStream());
   BufferedImage image =jid.decodeAsBufferedImage();
   FileOutputStream out = new FileOutputStream("d:/img/"+new Random().nextInt()+".jpg");
   JPEGImageEncoder jie = JPEGCodec.createJPEGEncoder(out);
    jie.encode(image);
    out.close();
    i++;
    System.out.println("已经从 "+st.getLocalAddress() +" 成功接收"+i+"张");
   }
}
}

以上程序只是实现了屏幕的监视功能,并没有控制功能,那需要添加监听器,并要创建可视化图形界面,所以没有进行深究。

呵呵,娱乐娱乐,仅供参考!

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 你好! 要用 Java 一个数据监控程序, 你需要考虑以下步骤: 1. 确定你要监控的数据来源。这可能是一个数据库, 一个 API, 或者其他数据源。 2. 连接到数据源并获取数据。这可能需要使用 Java 的某些数据访问库, 比如 JDBC 或 Hibernate。 3. 对数据进行处理和分析。这可能包括计算统计信息, 创建图表和报告, 或者执行其他分析操作。 4. 将结果呈现给用户。这可能包括在控制台输出, 在图形用户界面 (GUI) 中显示, 或者将结果发送到电子邮件或其他通信渠道。 5. 设置监控程序的执行频率。这可能使用 Java 的定时器功能来实现, 比如 Timer 或 ScheduledExecutorService。 希望这些信息对你有帮助! ### 回答2: 数据监控是指通过监控系统对特定数据进行实时采集、分析、报警和展示的过程。用Java一个数据监控系统可以具体参考以下步骤: 1. 数据采集:使用Java的网络编程和IO操作,从特定的数据源抓取数据,例如从传感器、数据库、日志文件等获取数据。 2. 数据处理:通过Java的数据处理和算法库,对采集到的原始数据进行预处理、清洗和转换,以满足系统的需求和规则。 3. 数据分析:使用Java的数据分析、统计和机器学习库,对处理后的数据进行分析和挖掘,发现其中的规律和异常。 4. 报警机制:根据分析结果,设定相应的阈值和规则,并使用Java的消息队列或事件处理机制,实现异常检测和报警功能。 5. 数据展示:利用Java的图形化库或Web开发框架,将监控结果以直观的方式展示给用户,例如生成图表、热力图等形式。 6. 定期维护和更新:不断优化和改进监控系统,增加新的数据源和监控指标,提高系统的稳定性、灵活性和性能。 7. 安全性设计:为了保护数据的安全和隐私,可以使用Java的加密库和权限控制机制,限制非授权用户的访问和操作。 综上所述,用Java一个数据监控系统需要具备数据采集、数据处理、数据分析、报警机制、数据展示、定期维护和安全性设计等功能。这些功能可以通过Java的各种库和框架来实现,同时需要结合具体的业务需求和系统环境进行设计和开发。 ### 回答3: 使用Java一个数据监控系统,可以实现对特定数据的监控和分析功能。系统的主要步骤如下: 1. 定义数据监控的目标:确定需要监控的数据类型和数据源,例如数据库、网络接口等。 2. 设计数据监控模块:创建一个数据监控类,该类包括数据源的连接和初始化方法,数据的读取和分析方法,以及数据的监控和报警方法。 3. 连接到数据源:使用Java的数据库连接API或网络连接API,连接到指定的数据源。 4. 初始化监控参数:根据具体需求,设置监控的时间间隔、阈值等参数,并确保数据源正确地读取到数据。 5. 数据读取和分析:使用合适的Java库或API,读取数据并进行分析,例如统计数据的平均值、最大值、最小值等。 6. 数据监控和报警:根据预设的阈值,监控数据是否超出正常范围。如果数据超过阈值或不满足特定条件,触发报警,例如发送邮件、短信或通知管理员。 7. 定时任务:使用Java的定时任务调度库,设置数据监控任务的定时执行,以保证数据的实时监控。 8. 界面展示:根据需要,可以通过Java的图形界面库或Web框架,实现数据监控结果的可视化展示,例如生成报表、图表等。 9. 异常处理:在代码中添加适当的异常处理机制,以确保系统能够在异常情况下正常运行,并且能及时处理错误和异常。 10. 日志记录:使用Java的日志框架,记录数据监控的过程和结果,便于后期的分析和排查问题。 通过以上步骤,使用Java的数据监控系统可以实现对指定数据的监控、分析和报警功能,帮助管理员及时发现和解决数据异常问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值