VNC使用心得

本文详细介绍了在项目中使用VNC进行远程桌面控制的需求,比较了VNC、SPICE和RDP协议,由于RDP的限制,最终选择了VNC控件。文章分享了VNC控件的选用理由,包括其特性、开源解决方案以及在C# WPF程序中的应用实例,同时提到了RealVNC的SDK和开源项目NVNC与vncFling2的结合使用,以降低延迟并提升用户体验。
摘要由CSDN通过智能技术生成

VNC使用心得

项目中有这样一项需求:服务器上主机上安装的有程序打开服务、三维演示程序,屏幕拓展到了幕墙大屏;水晶位于舞台一侧,演讲者需要通过服务器的服务打在主机上的程序,并实现演示操作。
要完成上述需求就需要用到一个功能:远程桌面控制。

VNC控件

远程桌面协议有三个:VNC/SPICE/RDP。下面的连接介绍了这三种协议的特点和区别。

https://blog.csdn.net/caoshangpa/article/details/75206195

由于都是windows系统,我首先接触了rdp协议。从网上直接找的轮子。但是打开demo测试了一下,效果不是很好,首先是鼠标有延迟,使用效果不好,更重要的是rdp只支持一个设备远程连接 而且远界面会出现锁屏,就是我把桌面远程到了水晶讲台,结果服务器主机锁屏了,幕墙也锁屏了就无法对观众进行演示。

https://blog.csdn.net/wochendaixin/article/details/78465095

这两点让我直接选择了VNC的控件。

VNC(Virtual Network Computing)是基于RFB(Remote Frame Buffer)协议进行通信的,是一个基于平台无关的简单显示协议的超级瘦客户系统。VNC最初有某个实验室开发出来,后来由RealVNC公司负责维护和更新。RealVNC公司自己开发了一套客户端/服务端程序和云服务,个人的云服务好像是免费。而且还封装了一套多种语言的SDK供开发者使用,但是收费。

开发包中提供了安卓、HTML、C#、python语言的服务端可客户端Demo。
我使用的是C#代码编写的WPF程序。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qgXtegKa-1589344465949)(https://i.imgur.com/CRi7mWX.png)]

WPF的vnc样例的项目如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IbBJ4kDu-1589344465956)(https://i.imgur.com/R7xmlZS.png)]

ConnectSettings.cs:连接字符类,主要字段有云连接地址、密码,tcp连接的账号密码等。这个类在程序初始化的时候用来进行服务端连接。

ConnectSettingsWindow.xaml是用来连接服务端的窗口页面。

MainWindow.xaml是显示服务端桌面的主窗体,页面上包含了是否批改、颜色、鼠标控制等按钮。点击“connect”后 vnc控件容器便会开始播放。

ViewerControl.cs是realvnc封装的winform播放控件,是播放画面的核心部分。

VncKeyMapper.cs将客户端的键盘对服务端的键盘进行映射。

VncWinformEventMap.cs 对上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值