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的源碼

image-20211118090352762

  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

    • size 分辨率
    • port 服務端口號(不加則默認為5900)

使用VNC客戶端

市面上的VNC客戶端有很多,常用的比如Realvnc,另外也有很多開源的項目:

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM