spice协议详解(三):spice架构和通信
2017-08-25 17:13
633 查看
一.相关概念
Channel(通道):
Client和server通过通道进行交互。每个通道类型专用于一种特殊数据类型传输。每个通道用一个专用的TCP套接字,可能是安全的(用SSL加密)或不安全的。在客户端每个通道有一个专用的线程。因此通过不同的线程优先级,每个通道被安排不同的传输功能,通道包括:
主通道( main ),由 RedClient 实现的主通道;
显示通道(display channel),处理图形命令,图像以及视频数据流;
输入通道(inputs channel),用于鼠标键盘输入;
位置通道( cursor channel ),指示设备的位置、可视性和光标形状;
音频播放通道(playback channel),指示来自服务器待由客户端播放的音频;
音频捕捉频道 ( record channel ),指示客户端捕捉的音频;
每个Channel就是客户端与服务端一个的网络连接。
客户端将每个Channel实现为一个单独的线程,实现方式是定义一个以单独线程运转的RedChannel基类,然后从此基类中派生所需要的具体功能类。
客户端启动后会首先与服务器建立连接,此连接即为MAIN_CHANNEL,MAIN_CHANNEL建立起来之后,客户端首先向服务器发送查询命令,请求服务器支持的Channel类型,然后客户端对所有支持的Channel一一创建对应的Channel类实例,每个实例都会开启自己的工作线程并向服务端发起连接请求,建立网络连接。
Channel(通道):
Client和server通过通道进行交互。每个通道类型专用于一种特殊数据类型传输。每个通道用一个专用的TCP套接字,可能是安全的(用SSL加密)或不安全的。在客户端每个通道有一个专用的线程。因此通过不同的线程优先级,每个通道被安排不同的传输功能,通道包括:
主通道( main ),由 RedClient 实现的主通道;
显示通道(display channel),处理图形命令,图像以及视频数据流;
输入通道(inputs channel),用于鼠标键盘输入;
位置通道( cursor channel ),指示设备的位置、可视性和光标形状;
音频播放通道(playback channel),指示来自服务器待由客户端播放的音频;
音频捕捉频道 ( record channel ),指示客户端捕捉的音频;
每个Channel就是客户端与服务端一个的网络连接。
客户端将每个Channel实现为一个单独的线程,实现方式是定义一个以单独线程运转的RedChannel基类,然后从此基类中派生所需要的具体功能类。
客户端启动后会首先与服务器建立连接,此连接即为MAIN_CHANNEL,MAIN_CHANNEL建立起来之后,客户端首先向服务器发送查询命令,请求服务器支持的Channel类型,然后客户端对所有支持的Channel一一创建对应的Channel类实例,每个实例都会开启自己的工作线程并向服务端发起连接请求,建立网络连接。
相关文章推荐
- PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯
- 架构设计:系统间通信(19)——MQ:消息协议(上)
- 3.3 基于 Socket 协议的网络通信详解
- Android的HTTP协议的通信详解
- 基于XMPP的即时通信系统的建立(四)— 协议详解
- 物联网通信协议的详解及选择建议
- LAMP分布式架构,通过fcgi通信方式进行工作详解和缓存加速之压力测试。
- 架构设计:系统间通信(19)——MQ:消息协议(上)
- spice协议详解(二):spice支持功能和优势
- 架构设计:系统间通信——MQ:消息协议
- CPP-网络/通信:经典HTTP协议详解
- 架构设计:系统间通信(20)——MQ:消息协议(下)
- socket通信协议关系详解
- 通信协议:HTTP详解
- Redis学习之通信协议详解
- HTTP协议报文、工作原理及Java中的HTTP通信技术详解
- 架构设计:系统间通信(20)——MQ:消息协议(下)
- spice协议详解(一):spice协议入门
- WebSocket详解(三):深入WebSocket通信协议细节
- HTTP协议报文、工作原理及Java中的HTTP通信技术详解