![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
teamtalk源码阅读笔记
darkGer
勿在浮沙筑高台
展开
-
teamtalk源码学习笔记 (一) ——公共网络库分析
teamtalk网络库类作用说明win客户端和linux服务端共用一套网络库,但是客户端为了与服务端共用一套网络库,做了一些额外的封装,本章会对两者共同之处的网络库进行源码分析,后面会对客户端和服务端的细微不同之处进行单独分析,因为这个系列是阅读源码过程中为理清思路所做的笔记,仅作为阅读源码时的参考,不足之处请及时指正一、下面是通用网络库的一些类的用法说明,具体功能请阅读源码C...原创 2018-05-03 14:44:34 · 896 阅读 · 0 评论 -
teamtalk学习笔记——客户端(1)——客户端概述
一、客户端框架概述要点先将客户端大致框架描述一下,因为这个框架基于网络库,所以该系列笔记先从底层网络库,再一步步往上进行分析,后续再详细讲解这些框架流程,仅供参考,如有不足请及时指出1. 客户端网络库通过提前注册的会话反应函数,来进行数据的回调,并根据serviceID来调用相应模块中的与cmdID对应的业务函数 2. 客户端总体有两个任务队列,四个线程,分别为逻辑任务队列(处理业务逻...原创 2018-05-03 14:46:15 · 1158 阅读 · 0 评论 -
teamtalk学习笔记——客户端(2)——客户端缓冲区2
在第一章讲了网络库的数据收发流程,但客户端的如何保证正确读取与发送没有详细讲,这需要依赖应用层的缓冲区来进行实现,也即CImConn中的CImConn中的m_in_buf和m_out_buf,本章主要针对缓冲区进行分析一、缓冲区类型CSimpleBufferclass DLL_MODIFIER CSimpleBuffer{public: CSimpleBuffer();...原创 2018-05-03 14:47:31 · 384 阅读 · 1 评论 -
teamtalk源码学习笔记——客户端(3)——逻辑队列和http队列、ui代理窗口
前面讲过,客户端主要框架是两个任务队列,四个线程,分别为逻辑任务队列(处理业务逻辑任务)、http任务队列(处理http有关的业务),每个队列有一个对应的线程,http队列有一个线程池,默认线程池线程个数为1,还有一个网络IO线程负责处理IO数据的读写操作,主线程做界面消息循环,用来与用户交互,之前分析过Io线程是进行数据下面就分析下这些队列和逻辑一、逻辑队列实现方式客户端概述的那一章...原创 2018-05-03 14:54:04 · 522 阅读 · 0 评论