KonsanNet 网络通信框架的设想(C++实现)

如前文所述,我抽了些时间码了一套网络通信的框架代码。

现在放在GitHub上:https://github.com/KonsanAlide/KonsanNet

设想中这套框架包含如下模块:

1.通信服务端模块CXCommunicationServer:支持TCP、UDP两种协议,支持WINDOWS和Linux两种平台,包含会话管理、数据包解析、线程调度管理、数据包分发等模块,大概分了四层,通信内核层(EPOLL和IOCP模型IO处理层)、数据包解析层(拆解包、验证、压缩、加密)、会话管理层、用户消息处理层。

2.客户端模块CXCommunicationClient:包含一个基础的SOCKET封装库,包含通信会话管理类,包含基础的数据包组包和拆解包,包含rpc对象的调用例子,包含文件传输例子,包含基础消息通信例子。

3.文件库CXFile:对Windows文件操作接口和Linux的操作接口做了一个简单的封装,主要是用于大文件的处理。

4.内存管理库CXMemoryCache:一个简单的内存管理库,用了一些Linux slab的原理,写了一个链表来管理内存的分配和释放,写了一个类来管理不同大小的块的内存池对象,用于解决网络通信中内存频繁的分配和释放问题。

5.线程锁库CXLock:对Windows 的临界区和Linux的spin_lock,mutex进行一个简单的封装。

6.日志类CXLog:简单的日志类,有待扩展。

7.线程库CXThread:对Windows和Linux的线程函数进行了一下简单的封装,主要是为了兼容非C++11的低版本编译环境。

8.套接字库CXSocketWrapper:对socket的操作函数进行封装,统一Windows和Linux的调用接口。这个库里面的核心类是我以前从网上下载下来修改过的,已经忘记来源于哪,如果有版权问题,或者发现原作者,请麻烦联系我,谢谢。

9.事件库CXEvent:对Windows的event和Linux的条件变量进行包装,统一Windows和Linux的调用接口。

该框架,目前在TCP通信方面已经进行了功能性的测试,包含Windows和Linux版本,初步实现了会话管理、消息通信处理和文件传输处理,但依然有很多需要改进的地方,后续我会慢慢的改进它,也欢迎大家参与改进工作,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值