- 浏览: 3567297 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
java里面的Robot类可以完成截图的功能,借助于这点,我尝试着做了一个简陋的桌面监控程序,运行了下,感觉速度还可以,还有很大的优化空间的,比如用udp协议取代tcp等。代码也写的不是很优雅,只在娱乐了。 实现原理其实很简单,在被监视者的机器上,运行一个线程,每隔一段时间就自动截图,并把截图压缩发送到指定的机器上;在监视机器上,也是运行一个线程,接收发送过来的图片包,解压,并绘制到当前的窗口上。这样就基本完成了。
Java代码
- public class Server extends Thread {
- private Dimension screenSize;
- 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() {
- ZipOutputStream 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.setLevel(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 (IOException e) {
- }
- }
- }
- }
- }
- public static void main(String[] args) {
- new Server().start();
- }
- }
public class Server extends Thread { private Dimension screenSize; 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() { ZipOutputStream 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.setLevel(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 (IOException e) { } } } } } public static void main(String[] args) { new Server().start(); } }
Java代码
- 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 Screen();
- 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 implements 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();
- 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);
- }
- }
- }
评论
2 楼
endual
2011-11-02
exp111 写道
这个zip压缩确实很强啊 问下楼主 怎么才能只连接一次不停的传呢 不是一次传一张 把socket连接代码提到外面好像不行
谢谢你的提问,抱歉我也是其他看来的呵呵,并非原创哦。
如果愿意进行交流 ,你可见加我QQ1019990976
1 楼
exp111
2011-10-28
这个zip压缩确实很强啊 问下楼主 怎么才能只连接一次不停的传呢 不是一次传一张 把socket连接代码提到外面好像不行
发表评论
-
JAVA 检测进程 检查进程
2011-08-04 23:43 1453import javax.swing.JOptionPane; ... -
JAVA 判断进程
2011-08-01 12:14 1735public boolean getProcess(Strin ... -
socket的通信问题
2011-07-28 20:48 1499client: Socket sc = new S ... -
JAVA 保留几位小数的问题
2011-07-24 15:35 1795首先定义: java.text.DecimalFormat ... -
JAVA 日期相减 前一天 后一天
2011-07-09 16:11 7380package com.endual.comparedate; ...
相关推荐
“Java桌面监控程序”是指利用Java编程语言开发的一种运行在用户桌面上的应用程序,主要用于监控计算机系统的各项活动或状态。这类程序通常具备实时监测系统资源(如CPU、内存使用情况)、网络流量统计、应用程序...
这里我们关注的是一个用Java实现的远程桌面监控解决方案。Java作为一种跨平台的编程语言,提供了丰富的API和库,使得开发这样的系统成为可能。 首先,实现远程桌面监控的核心在于网络通信和屏幕捕获技术。Java的...
我们将使用Java语言实现远程桌面监控系统,并使用NetBeansIDE6.7作为开发工具。 远程桌面监控系统的应用前景非常广泛,例如: 1. 远程维护:远程桌面监控系统可以让维护人员远程监控和维护计算机,提高维护效率和...
【基于WebRtc网页远程桌面监控】是一种创新的技术解决方案,它允许用户在浏览器中实现对远程计算机的实时监控,无需安装额外的插件或应用程序。这一特性极大地提升了用户体验,因为用户不再需要面对传统远程桌面软件...
【标题】"基于Java的远程桌面监控源代码"是一个与Java编程相关的项目,它涉及到Java技术在实现远程桌面监控方面的应用。远程桌面监控通常是指通过网络远程查看和控制另一台计算机的桌面,这对于系统管理员进行远程...
本文档的主要内容是基于Java的远程桌面监控源代码
在这个场景中,我们讨论的是如何使用Java Socket来实现实时的屏幕监控功能,即服务端能够远程查看客户端的屏幕内容,这样的功能在远程协助、监控或者演示场景中非常有用。 首先,我们需要了解Java Socket的基本概念...
本人自己写的Java远程监控,超简单,代码清晰易懂,使用UDP不可靠连接,cpu占用少,不过只有远程桌面监控,目前尚不能远程操作。。。纯Java代码无扩展jar包。 另免费附送基于JMF的远程摄像头监控,xp可用win7有些...
本文将详细讲解如何通过Java实现这一功能,以及如何利用这些技术来创建一个简单的桌面监控程序。 首先,Java提供了丰富的API用于处理图形和图像,其中AWT(Abstract Window Toolkit)和Swing库是主要的工具。在Java...
在远程监控场景下,可以使用Robot类的createScreenCapture方法获取远程计算机的屏幕快照,以便于监控远程计算机的实时桌面情况。此外,还可以通过keyPress和keyRelease方法模拟键盘输入,mouseMove、mousePress和...
Java实现的远程桌面监控系统是一种基于客户端-服务器(Client-Server,CS)架构的技术,它允许用户通过网络从一个地方访问并控制另一个地方的计算机。这个技术在IT管理、技术支持和远程协作等领域有着广泛的应用。...
本文主要探讨了一种基于Java语言,利用NetBeans IDE 6.7开发的局域网远程桌面监控系统的设计与实现过程。 首先,该系统的核心目标是使维护人员能够在局域网内远程控制和管理多台计算机,实现实时监控计算机运行状态...
该系统适用人群为需要进行远程设备监控和控制的企业、学校、政府等单位,系统的主要使用场景包括:远程设备实时监控和控制、网络视频监控和远程桌面管理等多种场景。该系统的主要目标是为企业、学校、政府等单位提供...
【JAVA开发的远程桌面监视小程序】是一个基于Java技术实现的简易版远程监控应用程序,它能够让你在一台设备上查看另一台设备的桌面活动。这个小程序是作者在大学期间完成的一次中级软件实作项目的成果,作为大三上...
《简易远程桌面监控系统——基于Socket编程》 在IT领域,远程桌面监控是常见的系统管理工具,它允许管理员从远程位置访问和控制其他计算机。本篇文章将深入探讨一个基于Socket编程的简易远程桌面监控源码,该源码...
Java设计的桌面程序是一种利用Java编程语言开发的用于在个人计算机上运行的应用程序。Java以其“一次编写,到处运行”的特性,使得它成为跨平台桌面应用的理想选择。本项目主要聚焦于PC监控管理,旨在提供一种高效且...
标题中的“java开发的一个windows的远程监控软件”表明这是一个使用Java编程语言开发的应用程序,其主要功能是针对Windows操作系统进行远程监控。Java是一种跨平台的编程语言,这意味着编写好的Java程序可以在任何...
【标题】:“软著V1 基于Java的远程桌面监控源代码 交底.pdf” 【描述】:这段描述没有提供具体的信息,因此我们无法深入讨论。但是,从标题中我们可以推测这是一个关于使用Java编程语言实现的远程桌面监控系统的源...
【软著V1基于Java的远程桌面监控源代码交底】文档主要介绍了一个使用Java语言编写的远程桌面监控系统的源代码结构和关键组件。这个系统允许用户远程监控其他计算机的桌面活动,提供了一种安全、便捷的方式来管理和...