基于libuv封装的快速开发框架

本文介绍了基于libuv封装的simple_uv框架,旨在简化跨平台开发,提高效率并减少错误。simple_uv提供了CUVThread类实现多线程通信,通过CUVThreadMng管理线程间的异步消息传递。同时,它简化了客户端和服务端的通信,所有交互通过类对象回调处理。文章还展示了如何在服务端和客户端使用simple_uv进行通信以及如何进行多线程编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研究libuv的代码,觉得如果使用libuv作为开发库的话,缺少一个快速大规模开发的框架,所以自己倒腾了一个----simple_uv


simple_uv是基于libuv封装跨平台库,旨在降低入门门槛和提高开发效率以及降低开发者人为出错的概率。


simple_uv简化了客户端与服务端的通信,客户端与服务端的所有交互消息都以某一个类的对象回调到上层业务,你不用关注客户端与服务端通信过程中消息的解析以及堆空间的申请与释放等繁琐且易出错的处理。


为了方便的进行多线程程序的开发以及多线程之间高效率的通信,simple_uv实现了一个CUVThread的线程类,类似windows上mfc中的CWinThread,可以响应其他线程发送过来的异步非阻塞消息,CUVThread提供了一个SendUvMessage的函数,可以向任意的CUVThread线程发送消息。


此外,simple_uv还提供了一个CUVThreadMng的类,管理所有的CUVThread线程,你可以在任意线程中调用CUVThreadMng::GetInstance()->SendUvMessage向指定的CUVThread发送消息。


在simple_uv中,对于客户端发到服务端的消息,服务端都有一个对应的响应函数来处理。例如客户端发送了一个CTestMsg类型的消息到服务端,服务端可以在这样一个函数中响应客户端的请求


int CTestGateWay::OnUvMessage(const CTestMsg &msg, TcpClientCtx *pClient)
{
    return CUVThreadMng::GetInstance()->SendUvMessage(msg, msg.MSG_ID, SERVER_TEST_CENTER_TYPE);
}
其中TcpClientCtx *pClient是客户端的soc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值