文件 |
方法 |
描述 |
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,整個連接過程結束。 |