
TeamTalk源码分析
baddy你个小菜鸡
延迟满足
展开
-
TeamTalk源码分析(2)
一、接收后解包 将这个流程抽象出来,这个流程也是现在所有网络通信库都要做的工作: 1 while(退出条件) 2 { 3 //1. 检测非侦听socket可读 4 //2. 处理可读事件 5 //3. 检测可读取的字节数,出错就关闭,不出错,将收取的字节放入连接的读缓冲区 6 //循环做以下处理 7 //4. 检测可读缓冲...转载 2018-12-04 22:18:22 · 275 阅读 · 0 评论 -
Teamtalk db_proxy_server 心跳包机制
1、程序初始化的时候: init_proxy_conn(thread_num); 在其中注册一个定时器函数:netlib_register_timer(proxy_timer_callback, NULL, 1000);2、然后在消息泵里面检测定时器:_CheckTimer(); 在其中遍历 m_timer_list 找出到达定时时间的定时器:curr_tick >= pItem-&g...转载 2018-12-05 11:05:47 · 224 阅读 · 0 评论 -
TeamTalk源码分析(1)
一、TeamTalk服务器端以下部署程序:db_proxy_server、file_server、http_msg_server、login_server、msfs、msg_server、push_server、router_server各个服务程序的作用描述如下:LoginServer (C++): 负载均衡服务器,分配一个负载小的MsgServer给客户端使用 MsgServ...转载 2018-12-08 12:37:11 · 596 阅读 · 0 评论 -
(测试)使用引用计数管理对象生命期
单线程下测试: 1 #include <iostream> 2 3 class RefObject{ 4 public: 5 RefObject() : count(1){ 6 std::cout<<"Base created."<<std::endl; 7 } 8 virtual ~...原创 2018-12-08 18:13:37 · 170 阅读 · 0 评论 -
socket可读可写就绪条件
转载自:https://www.cnblogs.com/web21/p/6611284.html参考 《UNIX 网络编程卷1》中的《第6章 I/O复用》一、 满足下列四个条件中的任何一个时,一个套接字准备好读。该套接字接收缓冲区中的数据字节数大于等于套接字接收缓存区低水位。对于TCP和UDP套接字而言,缓冲区低水位的值默认为1。那就意味着,默认情况下,只要缓冲区中有数据,那就是可读的...转载 2018-12-09 14:38:18 · 313 阅读 · 0 评论