我想捕获流桌面并通过 Java 数据报将其发送(到客户端)。以下示例进行截图。
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;
public class Captura{
static public void captureScreen(String fileName) throws Exception {
Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
ImageIO.write(image, "png", new File(fileName));
}
//----
public static void main(String[] args) {
try{
System.out.println("[ Captura iniciada ]");
//sleep 5 sg
Thread.currentThread().sleep(5*1000);
String FILENAME="/home/jose/Desktop/captura01.png";
Captura.captureScreen(FILENAME);
System.out.println("[ Captura finalizada ]");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
我也必须使用Robot类吗?,我如何发送流?
感谢您的帮助。
问候!
最佳答案
我不会为此使用数据报。如果出现任何网络错误、拥塞或接收器无法跟上,数据报将丢失,您的屏幕截图将被损坏。
最好使用常规(例如 TCP)套接字,并让传输层处理丢失的数据包和恢复。
关于java - 在Java中通过数据报发送桌面流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4346062/