C
Qt VNC Server
Qt VNC Server 提供用于使用 Qt 创建简单的 VNC® 兼容服务器的 API。VNC® 兼容服务器使用 "远程帧缓冲协议" (RFB®) 在服务器和一台或多台远程 VNC® 兼容客户端之间共享图形和输入。
一个典型的用例是使用 QtVncServer 模块在不同的用户或远程屏幕中共享 Qt Quick 应用程序的部分。使用与 VNC® 兼容的客户端软件,远程用户将能够查看和与应用程序进行交互。
可以将该模块与 Qt Wayland Compositor 结合使用以实现远程桌面解决方案。
使用该模块
QML API
通过 QtVncServer
入口可以访问模块的 QML 类型。要使用这些类型,将以下导入语句添加到您的 .qml 文件中
import QtVncServer
C++ API
使用 Qt 模块 C++ API 需要链接到模块库,无论是直接还是通过其他依赖项。包括 CMake 和 qmake在内的几种构建工具都为此提供了专用支持。
示例
查看 Qt VNC Server 可以做什么的最佳方法是查看示例。
支持的功能
Qt VNC Server 支持了 RFB® 规范的子集功能。
编码
Qt VNC Server 支持以下编码的客户端连接
- 原始 - 图形以未压缩数据的形式传输。
- Hextile - 使用 hextile 压缩传输图形。
- Zlib - 在传输之前使用 zlib 压缩数据。
可以使用 QT_VNCSERVER_PREFERRED_ENCODING
环境变量设置服务器首选编码,作为一个分号分隔的编码列表。它还决定了优先级顺序。
如果未设置,服务器将尊重客户端的优先级。但是,如果设置了环境变量,它将成为谈判的基础。使用分号分隔列表中第一个也受客户端支持的编码。
"原始" 编码将在找不到其他合适的编码时始终充当后备,即使没有列出。
除了这里提到的压缩算法外,Qt VNC Server 还默认检测更新帧中的脏区域。可以通过将环境中的 QT_VNC_NO_DIRTYMAP
设置为 1 来禁用此功能。在某些应用程序在每个帧中更新整个或大部分表面的情况下,跳过脏区域的检测可以更加高效。
安全性
如果 LibTomCrypt 可用,Qt VNC Server 将通过支持使用 DEC 认证进行密码保护来构建。这被认为是一种较弱的安全机制,可以防止意外访问,但不能防止针对性攻击。
否则连接上没有加密,建议在可信网络和 VPN 上使用服务器。
参考
许可和归属
Qt VNC Server可在Qt公司的商业许可证下使用。有关详细信息,请参阅Qt许可。
VNC®和RFB®是RealVNC® Ltd的注册商标。
在某些Qt许可证下可用。
了解更多。