您的位置:首页 > 其它

SPICE建立Channel的详细步骤及消息传递流程

2016-10-08 17:03 477 查看
参考 http://www.cnblogs.com/D-Tec/archive/2013/04/19/3030129.html

建立Channel的详细步骤及消息传递流程如下:(s表示server代码,c表示client代码)

s: reds_init_net, 注册回调reds_accept 创建listen socket,增加监听watch_add(reds_accept),后续加入select监听

c: RedChannel::run-》RedChannelBase::connect() -》RedPeer::connect_unsecure发送连接请求,等待服务端accept

s: reds_accept

    -》spice_server_add_client,reds_handle_new_link

        -》async_read_handler,异步接收数据,需要客户端发送数据,填充link->link_header结束

c: RedChannelBase::link() -》link_mess.channel_type = _type,send 发送link请求,recive等待

s:            -》reds_handle_read_header_done,

                -》async_read_handler,填充link->link_mess

                    -》reds_handle_read_link_done

                        —》async_read_handler,填充link->auth_mechanism

                            ->reds_handle_auth_mechanism

                                ->reds_get_spice_ticket

                                   —》async_read_handler,填充link->tiTicketing.encrypted_ticket.encrypted_data

                                       —》 reds_handle_ticket

                                           ->reds_handle_link

                                             ->if (link->link_mess->channel_type == SPICE_CHANNEL_MAIN) { reds_handle_main_link(link); }

   async_read_handler-》reds_stream_read堵塞,等待客户端发送消息

 

reds_handle_main_link流程
    -》reds_send_link_result(link, SPICE_LINK_ERR_OK);

c->s: SPICE_CHANNEL_MAIN s: reds_handle_main_link,此过程的详细步骤如上

s->c: SPICE_MSG_MAIN_INIT, c: handle_init

c->s: SPICE_MSGC_MAIN_ATTACH_CHANNELS s: reds_send_channels

s->c: SPICE_MSG_MAIN_CHANNELS_LIST c: handle_channels


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>

阅读(283) | 评论(0) | 转发(0) |

0
上一篇:打造自己的字节序转换函数(16位、32位和64位)

下一篇:SPICE 小计

相关热门文章
APP开发流程,你知道多少...

app开发需要多少钱

UBOOT-2012-10在OK6410平台的...

S3C6410启动方式及启动流程...

2014.4新版uboot启动流程分析...

[官版翻译ing]OpenStack云计算...

[官版翻译ing]OpenStack云计算...

hive的安装和配置

OpenStack安装记

Hadoop运行class类出现Excepti...

linux dhcp peizhi roc

关于Unix文件的软链接

求教这个命令什么意思,我是新...

sed -e "/grep/d" 是什么意思...

谁能够帮我解决LINUX 2.6 10...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: