RealVNC源码学习笔记 一

本文是RealVNC源码学习笔记的第一部分,主要介绍了VNC的基本概念、源码结构,特别是Windows系统下的实现。RealVNC基于C++开发,利用命名空间和消息驱动机制。在Windows平台,它使用hook技术来截取屏幕信息。源码中,`wm_hook.dll`全局钩子DLL用于拦截系统消息并转化为自定义消息,进而处理桌面变化。文章详细阐述了`wm_hook.dll`的工作原理和调用流程。
摘要由CSDN通过智能技术生成

RealVNC源码学习笔记 一

1VNC简介

VNC是一款优秀的远程控制软件,其英文全拼为 Virtual NetworkComputerVNC 是在基于 UNIX  Linux 操作系统的免费的开源软件 目前VNC不仅仅支持UNIXLinux系统,其是一款跨平台的开源软件,处理支持UNIXLinux系统外,还支持WINDOWSMACSolarisHP-UX等操作系统。

目前比较著名的VNC软件有RealVNC TightVNCRealVNC的官方网址为http://www.realvnc.comTightVNC的官方网址为http://www.tightvnc.com

 VNC运用RFB协议,RFBremoteframe buffer 远程帧缓存的简写,是一个远程图形用户的简单协议,因为它工作在帧缓存级别上,所以它可以应用于所有的窗口系统,例如:X11,Windows Mac 系统。RFBRealVNC公司维护和更新,RFB协议定义了远程图形用户客户端与服务器端的交互规则,如协商RFB协议版本、协商安全类型、协商像素格式编码方式等。RFB协议的具体内容可以参见RealVNC公司RFB协议文档http://tools.ietf.org/pdf/rfc6143.pdf

 

2VNC源码分析

windows系统的RealVNC的源码为基础来分析VNCwindows平台的具体

实现。vnc-4_1_3-winsrc目录下有两个目录commonwin目录,其中common目录下放着各个平台公用的模块,win目录下放着为windows系统特的开发的模块。其目录结构如下图:

common目录下的network实现了对套接字的封装;rdr实现了对输入输出IO操作的封装,网络套接字的接收和发送也由模块下的InstreamOutStream及其派生类实现的;rfb是非常重要的模块,VNC中大多机制的实现及消息、事件的处理都是在该模块完成的;Xregion是为X11封装的region类,在windows平台上无需关注;zlib是一个压缩模块,ZRLE编码会使用到该模块;javabin模块为浏览器访问VNC服务器提供支持。

win目录下的logmessages为消息日志模块;rfb_win32common目录下rfb模块的windows化,该模块下的很多类与rfb下的类同名,或继承自rfb下的类以实现某些类的windows特例化;vncconfig为配置窗口及其功能的实现;vncviewer为客户端的实现;winvnc为服务器端的实现;wm_hooks为一起dll工程,其实现一个全局

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值