java - 在Java中通过数据报发送桌面流

标签 java streaming udp desktop datagram

我想捕获流桌面并通过 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/

相关文章:

java - 客户端服务器udp套接字

C# UDP 监听器解除阻塞?或防止接收被卡住

android - 使用 ffmpeg 将 mp4 从 Linux 直播到 Android

java - 我不知道在哪里放置循环

java - 可外部化还是可序列化?

java - PagerTabStrip 无法解析为类型

next.js - Langchain 流式传输无法与 Next.JS 13+(Next.JS App Router)一起使用

java - Apache Flink 中通用模式转换的 InvalidTypesException

android - 在 Android 上使用 vlclib

java - 从同一 jar 中存在的 java 代码读取 jar 中的文件