spice client 和 spice server 通信机制(4)
时间:2025-07-08
时间:2025-07-08
c:RedChannelBase::link()-》link_mess.channel_type=_type,send发送link请求,recive等待
s:obj->done-》reds_handle_read_header_done
-》(read_header完了,继续从流中读取数据)obj->done=
reds_handle_read_link_done,async_read_handler
-》cb_read,obj->done(reds_handle_read_link_done)-》
reds_handle_ticket,async_read_handlerobj->done=
-》cb_read,obj->done(reds_handle_ticket){
casechannel_typeofSPICE_CHANNEL_MAIN:reds_handle_main_link
otherwise:reds_handle_other_links
}
c->s:SPICE_CHANNEL_MAINs:reds_handle_main_link,此过程的详细步骤如上s->c:SPICE_MSG_MAIN_INIT,c:handle_init
c->s:SPICE_MSGC_MAIN_ATTACH_CHANNELSs:reds_send_channels
s->c:SPICE_MSG_MAIN_CHANNELS_LISTc:handle_channels
一、Server端Channel实现
1、服务端注册Channel。
服务端最关键的数据结构为RedsState,又有一个别名叫SpiceServer,Server端会维护一个全局的RedsState变量,用来存储全局数据。该全局数据结构在CoreInterface初始化时由Qemu负
上一篇:京津SCAD系统简介