当前位置: 首页 > 工具软件 > Quod Libet > 使用案例 >

参考handy网络库修改的轻量级windows网络库libet

萧丁雨
2023-12-01

最近参考开源网络库handy,整合了一个符合我场景的网络库—libet,适用于windows平台。

现在我想先从整体架构上说明libet。

libethandy库一样,存在很多的回调函数。

先介绍基本的类:

  • TcpServer: 用于绑定IP,端口,处理Tcp连接。
  • TcpConn: 处理连接中的读,写。
  • Channel: 维护一个fd的通道,处理读写。
  • EventBase: 事件分发器,可以设置定时任务。
  • PollerBase: 轮询器基类。
  • PollerSelect: 主要用作select轮询事件,用于添加/删除/更新通道。
  • Buffer: 一个Tcp连接有两个buffer,输入buffer,输出buffer。
  • Slice: 作为 Buffer的扩展类,只维护Buffer的指针,不拥有实际资源。
  • CodecBase: 用于编解码业务消息。
  • Logger: spdlog的封装。
  • SafeQueue: 线程安全队列。
  • ThreadPool: 线程池。
  • ConnThreadPool: 连接线程池。
  • Timer: C++11封装的计算时间差类。

测试代码:

// 测试TCP服务器
void TestTcpServer();

//测试定时器
void TestTimer();

//测试关闭闲置连接
void IdleCloseTest();

//测试echo和心跳
void HeartbeatTest();

//测试定时发送txt文本
void PeriodicallySendTest();

//测试MultiBase发送txt文本
void MultiEbPeriodicallySendTest();

//测试单EventBase,工作线程池
void OneIoMultiWork();

//测试单例模式
void TestSingleton();
 类似资料: