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);
//