Spice代码阅读一:Spice Client 与 Spice Server 通道建立过程
2013-08-04 19:56
351 查看
文件 | 方法 | 描述 |
Application.cpp | init_globals() | 初始化Log,ssl库,canvas(或opengl canvas)和quic压缩库 |
Process_cmd_line() | 解析命令行连接参数 | |
init_platform_globals() | 分别对windows和linux 平台初始化显示、键盘和窗口等 | |
init_remainder() | 初始化监视器、菜单(快捷键)和事件侦听等 | |
Run() | 调用ProcessLoop的run() | |
ProcessLoop | Run() | |
Application.cpp | on_start_running() | 调用 connect() |
Connect() | 调用Red_client.cpp的connect(),唤醒等待的线程 | |
Red_channel.cpp | Run() | 调用RedChannelBase的connect()方法 |
Red_Peer.cpp | Connect_secure() Connect_unsecure() | 根据配置,采用安全或非安全连接,实际连接到server端 |
Red_channel.cpp | Link() | 发送 SpiceLinkMess,接收公钥,加密密码,发送密码,检查连接结果;交换各自的capabilities |
On_event() | 调用 Receive_message() | |
Receive_messages() | 在Main Channel建立以后,client开始等待接收server发过来的后续消息,依次处理,调用handle_message() | |
handle_message() | 调用 Generated_client_demarshallers.c::Parse_MainChannel_msg()解析消息 | |
Red_client.cpp | Handle_xxx() | 根据消息类型,调用相应的处理handle进行处理,处理诸如:RED_MAIN_INIT = 103 RED_MAIN_CHANNELS_LIST = 104 之类的消息,建立后续的channel |
Create_Channel() | 建立其他的channel,整个连接过程结束。 |
相关文章推荐
- Spice代码阅读一:Spice Client 与 Spice Server 通道建立过程
- Spice代码阅读一:Spice Client 与 Spice Server 通道建立过程
- Powerbuilder 9.0 +MySQL Server 5.1 建立数据库连接的过程及代码
- Spice代码阅读二:Primary surface 创建过程
- Spice代码阅读二:Primary surface 创建过程
- libevent代码阅读(13)——epoll的事件等待以及分发过程
- android repo/git server 建立过程
- SQL Server Express无法建立ODBC问题(错误代码67 和17)
- 如何利用花生壳和VisualSVN Server建立远程代码仓库
- srs代码学习(1)--listen建立过程
- 59. Netty源代码分析-ServerBootstrap bind 过程-2
- JavaSE第一百零九讲:TCP连接建立的一般过程与代码详解
- Linux启动过程简略分析-start_kernel部分代码阅读
- 已成功与服务器建立连接,但是在登录过程中发生错取。(provider:共享内存提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233)
- 破解:已成功与服务器建立连接,但是在登录过程中发生错误。Microsoft SQL Server, Error: 233
- live555代码解读之一:RTSP连接的建立过程
- 代码阅读 - SocketServer.py
- live555代码解读之一:RTSP连接的建立过程
- srs代码学习(1)--listen建立过程
- linux下代码阅读环境的快速建立--lxr+glimpse