spice client 和 spice server 通信机制(8)
时间:2025-07-08
时间:2025-07-08
2
、Channel的三个回调函数:link、shutdown、migrate,其中link是在客户端与服务端建立Channel连接的时候被调用的,下面对其进行详细解说
首先,客户端Channel的工作线程启动后,发起link()操作,服务端在reds_handle_new_link中响应,最终会调用各个注册的Channel的link()函数完成link操作。这个过程中,Server端利用了一种异步消息处理机制,主要是通过一个结构加一个处理函数来实现,简单介绍一下此消息处理机制:
AsyncRead是此消息处理机制的一个非常重要的辅助结构体,定义如下:
typedefstructAsyncRead{
RedsStreamContext*peer;//用来处理网络数据流的数据对象
void*opaque;
uint8_t*now;
uint8_t*end;//传递数据用的,通常作为done函数的参数//数据起始,用来保存接收数据//数据结束,通常用来计算数据长度
void(*done)(void*opaque);//消息处理函数
void(*error)(void*opaque,interr);//错误处理函数
}AsyncRead;
上一篇:京津SCAD系统简介