Qt-Vnc远程

VNC简介

VNC(Virtual Network Computing)是基于RFB(Remote Frame Buffer)协议的远程系统,C/S端口默认为5900,B/S端口默认为5800。

RFB (远程帧缓存) 是一个远程图形用户的简单协议,工作在帧缓存级别上,其传输的是像素数据是以XY为起点的方框数据,通过矩形图形数据组进行帧缓存的更新。另外更新是由客户端通过命令驱动的,也就是说更新只是服务器在响应客户端的请求时发生的,如果网络较差时,有些帧的缓存会忽略,这样能减少客户端对网络和绘制速度的要求。

远程桌面协议对比:

SPICE VNC RDP BIOS屏幕显示 能 能 不能 全彩支持 能 能 能 更改分辨率 能 能 能 多显示器 多显示器支持(高达4画面) 只有一个屏幕 多显示器支持 图像传输 图像和图形传输 图像传输 图像和图形传输 视频播放支持 GPU加速支持 不能 GPU加速支持 音频传输 双向语音可以控制 不能 双向语音可以控制 鼠标控制 客户端服务器都可以控制 服务器端控制 服务器端控制

VNC作为一种远程桌面协议,常常用在嵌入式开发中,在嵌入式设备上运行vnc服务程序,即可在PC端远程控制。

QT环境要求

  1. QT版本需要 5.8以上,可以下载相应版本的源码包,比如5.9.6.zip,解压之后,在 qtbase/src/plugins/platforms下可以看见有 vnc的源码

Qt-Vnc远程
  1. 检查qt库安装目录下插件 plugins文件夹中 platforms目录是否有vnc动态库 libqvnc.so
ls /usr/lib/qt5.8/plugins/platforms/
libqeglfs.so       libqminimal.so     libqoffscreen.so
libqlinuxfb.so     libqminimalegl.so  libqvnc.so

注意:QT提供的VNC服务比较简单,只支持一些基本的功能,另外老版本的VNC中也有一些BUG可能会造成崩溃,所以最好还是尽量使用新版本。

使用教程

QT程序启动vnc服务

  1. 方式1:通过设置环境变量,改变程序的启动方式 配置QT程序的启动的方式 export QT_QPA_PLATFORM=vnc
  2. 方式2:启动程序时指定启动方式 启动参数 ./test -platform vnc:size=800x600,port=12345
  3. size 分辨率
  4. port 服务端口号(不加则默认为5900)

使用VNC客户端

市面上的VNC客户端有很多,常用的比如Realvnc,另外也有很多开源的项目:

参考

Original: https://www.cnblogs.com/yaronzz/p/15723128.html
Author: Yaronzz
Title: Qt-Vnc远程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585299/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • CRC校验

    ​ 一:CRC概念 1.1、参考博客 参考的教程如下: 手算CRC及其实现 CRC校验算法原理分析 一文讲透CRC校验码-附赠C语言实例 CRC校验(手算与直观演示) CRC(循环…

    Linux 2023年6月13日
    078
  • MHA实现MySQL的高可用性

    对主节点进行监控,可实现自动故障转移至其它从节点;通过提升某一从节点为新的主节点,基于主从复制实现,还需要客户端配合实现。 目前MHA主要支持一主多从的架构,要搭建MHA,要求一个…

    Linux 2023年6月7日
    0102
  • Linux系统编程之匿名管道

    1.进程间通信介绍 1.1 进程通信的基本概念 在之前我们已经学习过进程地址空间。Linux 环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量…

    Linux 2023年6月8日
    0104
  • 使用docker 部署mysql,突然连接不上!

    WARNING: IPv4 forwarding is disabled. Networking will not work. 大概意思就是说,网络不能用,也就意味着不能连网络,所…

    Linux 2023年6月7日
    075
  • 线段树扫描线(二)矩形周长 以hdu1828为例

    还是老规矩,传送门 hdu 1828 依然不做过多解释,给出n个矩形,求这些矩形组合而成的图形的周长(中间镂空的部分也算) 还是像扫面线(一)一样,自下而上扫描, 我们先只考虑横线…

    Linux 2023年6月6日
    090
  • 007 Linux 命令三剑客之-awk

    Linux 命令三剑客,sed、grep、awk。 sed:擅长数据修改。 grep:擅长数据查找定位。 awk:擅长数据切片,数据格式化,功能最复杂。 awk 更适合格式化文本,…

    Linux 2023年5月27日
    082
  • AI芯片的软件挑战

    本文是记录会议【ICPA联盟微课 | 第1期】燧原科技李彬:AI芯片的软件挑战内容。不得不说,什么叫高屋建瓴。 芯片软件的5个衡量指标:算力利用率、开发效率、生态兼容性、可移植性、…

    Linux 2023年6月7日
    085
  • Ubuntu18开启默认root登录方法

    默认的Ubuntu 18.04系统在登陆界面上是不支持root用户直接登录的,但是你可以使用下面的方法让Ubuntu 18.04也支持root登录,其他类似的版本参考在Ubuntu…

    Linux 2023年6月7日
    087
  • LeetCode_29. 两数相除Divide Two Integers|商的二进制表示与除数的关系

    Problem description Given two integers: dividend and divisor, return dividend/divisor with…

    Linux 2023年6月13日
    069
  • python入门基础知识一(基于孙兴华python自动化)

    print(‘aaa’)等价于print(“aaa”) 英文单引号和双引号在字符串的输出上并无区别,但如果要打印这么一段话:I&#8…

    Linux 2023年6月7日
    089
  • 面试题汇总

    JAVA 基础 1.java 性能优化 ①尽量指定类、方法的final 修饰符 ②尽量重用对象 ③尽可能使用局部变量 ④及时关闭流 ⑤尽量减少对变量的重复计算 ⑥尽量采用懒加载的策…

    Linux 2023年6月7日
    084
  • Java实现斗地主(集合综合练习)

    ​学完了集合后我们可以开始做一个简易版的 “斗地主 ” 了,但是呢咱们这个斗地主只能实现制造牌,洗牌、发牌、看牌这几个简单的功能,并不是我们玩的 &#822…

    Linux 2023年6月6日
    0110
  • Canal-1.1.5部署安装

    canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议 MySQL master 收到 dum…

    Linux 2023年6月13日
    082
  • 数据库备份数据脚本

    #!/bin/bash currentpath=dirname $0 if [ ${currentpath} == ‘.’ ];then currentpath=pwd fi ba…

    Linux 2023年6月8日
    073
  • shell脚本

    1、什么是shell 什么是shell ? Shell(外壳) 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Shell 既是一种命令语言, 又是一种程序设计语…

    Linux 2023年5月27日
    098
  • 部署apache

    1、使用DockerHub镜像 [root@master ~]# mkdir httpd_dockerfile [root@master ~]# cd httpd_dockerfi…

    Linux 2023年6月13日
    0108
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球