- 博客(7)
- 资源 (4)
- 收藏
- 关注
原创 关于socket的各种错误码
1、INVALID_SOCKET : 表示该 socket fd 无效。如 accept(2) 或 socket(2) 等在创建socketfd时:int m_socket = socket(AF_INET, SOCK_STREAM, 0);if (m_socket == INVALID_SOCKET){ printf("socket failed, err_code=%d\n", _G...
2018-12-20 21:34:55 24727 2
原创 日志 - 客户端及服务端写法
一、客户端先来看一个日志类的实现方法,这个日志类也是代表着大多数客户端日志的主流写法:log.h: 1 #ifndef __LOG_H__ 2 #define __LOG_H__ 3 4 #include <stdio.h> 5 6 //#ifdef _ZYL_LOG_ 7 #define LogInfo(...) Log::GetI...
2018-12-13 20:34:41 1421
转载 socket可读可写就绪条件
转载自:https://www.cnblogs.com/web21/p/6611284.html参考 《UNIX 网络编程卷1》中的《第6章 I/O复用》一、 满足下列四个条件中的任何一个时,一个套接字准备好读。该套接字接收缓冲区中的数据字节数大于等于套接字接收缓存区低水位。对于TCP和UDP套接字而言,缓冲区低水位的值默认为1。那就意味着,默认情况下,只要缓冲区中有数据,那就是可读的...
2018-12-09 14:38:18 274
原创 (测试)使用引用计数管理对象生命期
单线程下测试: 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 145
转载 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 520
转载 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 202
转载 TeamTalk源码分析(2)
一、接收后解包 将这个流程抽象出来,这个流程也是现在所有网络通信库都要做的工作: 1 while(退出条件) 2 { 3 //1. 检测非侦听socket可读 4 //2. 处理可读事件 5 //3. 检测可读取的字节数,出错就关闭,不出错,将收取的字节放入连接的读缓冲区 6 //循环做以下处理 7 //4. 检测可读缓冲...
2018-12-04 22:18:22 236
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人