⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.java

📁 本程序用于远程监视,是实现远程桌面控制的最基本的操作
💻 JAVA
字号:
import com.sun.image.codec.jpeg.JPEGCodec;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.Socket;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Server extends Thread {

	private Dimension screenSize;

	private Rectangle rectangle;

	private Robot robot;

	private String ip = null;

	private int port;

	public Server() {

		screenSize = Toolkit.getDefaultToolkit().getScreenSize();// 得到服务端的屏幕尺寸

		rectangle = new Rectangle(screenSize);// 用来指定捕获屏幕区域,全屏

		try {

			robot = new Robot(); // 用于操作屏幕捕抓

		} catch (Exception e) {

			e.printStackTrace();

		}

	}

	public void run() {

		readConfig();
		
		ZipOutputStream zos = null;

		Socket socket = null;

		while (true) {

			try {

				socket = new Socket(ip, port);// 连接远程IP

				BufferedImage screenImage = robot.createScreenCapture(rectangle);// 捕获制定屏幕矩形区域

				zos = new ZipOutputStream(socket.getOutputStream());// 加入压缩流

				zos.setLevel(9);

				zos.putNextEntry(new ZipEntry("1.jpg"));

				JPEGCodec.createJPEGEncoder(zos).encode(screenImage);// 图像编码成JPEG

				zos.close();

			} catch (Exception e) {

			} finally {

				if (zos != null) {

					try {

						zos.close();

					} catch (Exception ioe) {
					}

				}

				if (socket != null) {

					try {

						socket.close();

					} catch (IOException e) {

					}
				}
			}
		}
	}

	public void readConfig() {
		try {
			FileReader fileReader = new FileReader("config.ini");
			String ip = (new BufferedReader(fileReader)).readLine();
			System.out.println(ip);
			
			this.ip = ip.substring(0, ip.lastIndexOf(":"));
			port = Integer.parseInt(ip.substring(ip.lastIndexOf(":") + 1));
			System.out.println(this.ip + "\n" + port);
		} catch (FileNotFoundException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {

		new Server().start();

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -