2011-04-03 36 views
1

我想用java构建远程桌面应用程序。为此,我计划使用Robot拍摄屏幕截图并将其转换为字节数组(bmp图像)并发送。在服务器端将图像读入字节数组并转换成图像并显示。将连续的图像与先前的图像进行比较,并且仅发送不同的字节(以及开始索引,其中差异开始和差异长度)。在服务器端,我只读取差异字节并构建图像。需要网络上的图像传输帮助

这种方法适用于互联网(中等速度)吗?

请指定任何更好的方法来做到这一点,如果你觉得这不会在互联网上工作。

回答

2

这听起来与VNC protocol相似(在很高的水平上)。你可以只采用它使用的协议(RFB-远程帧缓冲区),或者至少看看它以获得一些想法(使用矩形来表示屏幕上的区域)已经改变了声音比索引改变成一个字节数组)。该文档可以找到here

+0

感谢您的回复。但是屏幕上的变化一般不会总是变化很大。考虑编辑文本或移动鼠标指针的正常操作。每次拍摄屏幕图像时,通常会有一小部分图像发生变化。如果这部分被发送,那么网络流量会大大减少。请让我知道我是否在任何地方都是错误的。 – hnm 2011-04-03 08:15:33

+0

你没有错,但我认为索引到字节数组并不是最好的方法。 VNC通过发送一系列矩形差异来解决这个问题。除非我没有正确理解,否则我认为发送位图图像的索引不会那么好。 – 2011-04-03 08:17:03

+0

谢谢。我将通过VPN协议并了解如何将其应用于我的程序。 – hnm 2011-04-03 08:24:34