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 需要链接到模块库,无论是直接还是通过其他依赖项。包括 CMakeqmake在内的几种构建工具都为此提供了专用支持。

示例

查看 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许可证下可用。
了解更多。