改进TightVNC 笔记

2010 4.2->4.8 这一星期里我对TightVNC 1.3.10作了改进.

但愿以下内容对你的调试,或者了解tightVNC 运行机制有所帮助.

 

目标是: 溶入到网络会议系统, p2p 模式无客户端请求数据. 带宽要求越小越好.实时性要求不是太高.
可应用于大规模的网络培训, 网络教学. 如 单服务器支持的基于p2p 的上W人的网络培训. 等情况.

 

目前我已经实现无连接驱动机制, 来调用TightVNC代码.

达到了: 服务器到客户端的数据通信, 完全可以自行处理.


1. 大概情况:
   TightVNC 应用了多种压缩方法 zlib, jpeg, tight 等. 使用TCP通信, 由客户端发出rfbFramebufferUpdateRequestMsg
   请求, 服务器端再给出数据的方式.  客户端收到数据更新到DC, BITMAP, 然后再发出rfbFramebufferUpdateRequestMsg 请求.

   以此方式运行.

 

 本文出自: 阿呆 http://blog.csdn.net/davemin
宣传: VC 十年技术群 30107096 欢迎高手加入,本群只研究VC

 

2. 消息机制:

 4 Bytes(其中1byte为rbfMsgType, 客户端代码注意有一个地方是:MSG_PEEK ) 头 + body

   rfbMsg -> Header -> body


3. Update 机制:

 RFBMsg Update + Rectangles ( Update )

 Full (全屏所有方块数据)只应用于第一次.


4. 驱动机制:
 
 Client-> Update Request

 服务器端收到后: RFBMsg

 服务器端 1对多更新方式: TriggerUpdate

只调试第一次的数据方式:
// Update handling
void vncServer::TriggerUpdate()
{
 static bool debugfirst = false;
 if( debugfirst )
  return;

 vncClientList::iterator i;
 
 omni_mutex_lock l(m_clientsLock);

 //

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值