java通过socket观看另一台电脑动作

通过写两个小程序来实现两台电脑之前屏幕监控小功能
一、server端

import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.net.ServerSocket;
import java.net.Socket;

import javax.imageio.ImageIO;
public class ScreenRobot {

    public static void main(String[] args) throws Exception {
        //创建Robot对象来获取桌面截图
        Robot robot = new Robot();  
        //截取分辨率
        Rectangle rec = new Rectangle(1366,768);
        //server监听端口 等待连接
        ServerSocket ss = new ServerSocket(8888);
        while(true){
            try{
                //连接成功获取socket
            Socket so = ss.accept();
            //截屏
            BufferedImage bi = robot.createScreenCapture(rec);
            //发送到输出端
            ImageIO.write(bi, "jpeg", so.getOutputStream());
            so.getOutputStream().flush();
            so.getOutputStream().close();
            so.close();
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
}

二、请求端

import java.awt.image.BufferedImage;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class ScreenPanel {

    public static void main(String[] args)   {
        // TODO Auto-generated method stub
        //创建显示frame
        JFrame jf = new JFrame();
        jf.setSize(1366, 768);
        jf.setVisible(true);
        while(true){
            try{
                //请求server端  
                Socket socket = new Socket("127.0.0.1",8888);
                //获取图片
                BufferedImage bi = ImageIO.read(socket.getInputStream());
                JLabel lab = new JLabel();
                jf.setContentPane(lab);
                lab.setSize(1366, 768);
                ImageIcon ii = new ImageIcon(bi);
                //label展示从server端收到的图片
                lab.setIcon(ii);
                socket.close();
                //休眠一小下,可自动调节
                Thread.sleep(10);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
}

首选运行server端然后运行请求端就可以看到运行结果,大概下图的样子,
运行时候分开为两台电脑运行可一直观测到另一台电脑的操作
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangyue23com

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值