X11VNC中X11的部分是啥?
Posted
技术标签:
【中文标题】X11VNC中X11的部分是啥?【英文标题】:What is the part of X11 in X11VNC?X11VNC中X11的部分是什么? 【发布时间】:2017-05-03 16:18:59 【问题描述】:我了解 RFB 协议用于远程显示。 X11VNC 使用 RFB 协议,因此任何 VNC 查看器(基于 RFB)都可以查看显示。
问题:
-
例如,假设我有一个帧缓冲区 /dev/fb0。我只是可以编写和运行从基于 RFB 协议的帧缓冲区读取的应用程序。在这种情况下,X11VNC 与它有什么不同。
此外,X11VNC 本身提供了使用原始帧缓冲区的选项。使用/不使用此选项有什么区别?
【问题讨论】:
【参考方案1】:x11vnc 使用 X11 请求来获取您的屏幕更新 - 通过可用的 Composite/Damage 扩展,或者只是通过按时间间隔执行 GetImage 请求并将其与本地副本进行比较。您不仅想知道屏幕在任何时间点的当前图像,还想知道什么时候改变了,哪些区域受到了影响。同样使用 x11vnc,您可以跟踪单个窗口而不是整个屏幕 - 除了 rfb 服务器之外,还有相当数量的 x11 功能。
【讨论】:
太好了,谢谢安德烈。与我碰巧自己编写相比,使用 X11vnc 应该可以更好地实现查找差异。 RFB(从 Spec 读取)本身并没有指定如何从帧缓冲区中获取差异,对吧?。 rfb 流式传输矩形(可能已压缩),其中包含更新后屏幕上的新内容。 E.i 当您在终端 rfb 中键入字符时,将发送小矩形,例如“嘿 vnc 客户端,位置 [100, 100, 16x16] 的屏幕现在是这个位图”。客户通常会回复“哦,很好,一旦有变化,请尽快给我发送下一个更新” 所以,在 x11vnc + rfb 的情况下,rfb 将得到 x11 的帮助以获取最新的更新和 rfb 流(如您所说的压缩)并发送回客户端。 rfb 本身不会确定屏幕上出现的变化。对吗? x11vnc 充当 rfb 服务器和 X11 服务器的客户端,这里没有独立的“rfb”服务,它只是协议的名称。 x11vnc 只是一个碰巧同时使用两种协议(X11 和 rfb)的程序 非常感谢安德烈。以上是关于X11VNC中X11的部分是啥?的主要内容,如果未能解决你的问题,请参考以下文章