![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
红帽—spice-gtk&&virt-viewer
文章平均质量分 79
GT19930910
让我们一起来学习c/c++
展开
-
spice-gtk-0.35源代码解析之spicy解析
spice-gtk介绍:spice-gtk是基于红帽的spice远程连接协议的一套客户端核心源码,上层有一套virt-viewer也是客户端源代码,只不过spice-gtk属于底层直接对话协议的项目,而virt-viewer是基于spice-gtk的更加偏向于界面的项目。spicy:spicy是基于spice-gtk项目的一个测试可执行文件(virt-viewer的可执行文件re...原创 2018-11-06 11:36:41 · 3720 阅读 · 4 评论 -
spice-gtk之spice-channel数据包的解析
spice-gtk,是红帽的一个远程连接的一个项目,这是一个c语言实现的面相对象的项目,采用的是gobject面相对象的方法,所以读懂spice-gtk的代码首先得了解一下gobject的语法。spice-channel网络层接收所有服务端的包spice_channel_init(SpiceChannel *channel)首先初始化初始化的时候将priv结构体中的一些变量初始化,公有变量...原创 2018-11-05 10:41:10 · 2321 阅读 · 3 评论 -
spice-gtk如何实现添加自己的界面
spice-gtk-0.35是红帽的一款远程连接客户端,连接服务器的方式之前有讲到,今天讲一讲如何改造spice-gtk的源码能使spicy变成我们自己的界面。原运行模式首先我看一下spicy的运行方式,毋庸置疑main函数开始看起,main函数在spice-gtk-0.35/tools/spicy.c里面,下面是spicyhttps://blog.csdn.net/FlayHighe...原创 2018-11-13 09:46:00 · 1429 阅读 · 0 评论 -
spice-gtk 之usb相关代码(1)
spice-gtk是里面有一个spicy的测试工具,可以直接用来远程连接虚拟机代替remote-viewer,但是spicy远程连接的虚拟机却不能自动加载插入的usb设备,下面简单解析一下spice-gtk中关于usb的代码.usb-device-manager.c下面是usb-device-manager.c中几个重要的函数调用:spice_usb_device_manager_init...原创 2018-12-26 14:43:38 · 1090 阅读 · 2 评论 -
glib库hash表GHashTable介绍
hash表是一种提供key-value访问的数据结构,通过指定的key值可以快速的访问到与它相关联的value值。hash表的一种典型用法就是字典,通过单词的首字母能够快速的找到单词。关于hash表的详细介绍请查阅数据结构的相关书籍,我这里只介绍glib库中hash表的基本用法。要使用一个hash表首先必须创建它,glib库里有两个函数可以用于创建hash表,分别是g_hash_table_n...转载 2018-12-27 14:39:34 · 813 阅读 · 0 评论 -
spice-server以及spice-gtk非视频状态下传输流量分析研究
服务端编码:目前的spice图像压缩主要采用了quic,glz和jpeg。quic和glz是无损压缩算法,quic主要用于照片,glz用于人工图像,jpeg也主要用于照片压缩但是是有损的。jpeg能节省50%的带宽,glz只能节省20%,但是jpeg会带来更大的开销,所以不能都使用jpeg进行压缩。考虑降低流量,首先尽可能选用jpeg方式进行图像压缩进行测试,red-worker里面其...原创 2019-01-04 15:41:51 · 2121 阅读 · 9 评论 -
spice-server-0.14.0视频传输函数调用过程
下面是spice-server-0.14.0开启之后初始化视频编码器并进行编码选择,之后传输图片至客户端spice-gtk的函数调用过程:从reds.c开始:spice_server_new 注:每一个虚拟机都有一个spice_server_newspice_server_init 1、do_spice_init 1、main_channel_new i...原创 2019-01-23 16:57:25 · 2730 阅读 · 1 评论 -
spice-gtk之usb相关代码(2)
回顾在上一篇关于usb的代码分析https://blog.csdn.net/FlayHigherGT/article/details/85261810中,我们聊到了一些关于usb插入拔出之后spicy回应的某些回调函数,也聊到了如何实现连接虚拟机时自动重定向已经插着的usb,但是经过最近的研究,发现这个功能其实是在spicy里面是有功能实现的,下面细说。spicy两个功能参数1、spi...原创 2019-05-15 21:22:31 · 823 阅读 · 0 评论 -
spice-gtk如何实现断网提醒
spice-gtk现状使用过spice-gtk进行远程连接虚拟机的朋友应该都知道,正在连接虚拟机的过程中,如果网络断开,虚拟机窗口界面就会卡死,也不会给出任何提示信息,那么下面我们来实现spice-gtk网络超时后自动退出。设置socket超时关闭选项首先找到spice-channel.c这个是spice-gtk的核心网络层,找到setsockopt函数所在位置加入: int...原创 2019-05-17 14:13:02 · 1454 阅读 · 1 评论