自己动手网络框架(一)--概述

博主从事C++开发多年,常需用第三方库造轮子,此次想解决网络方面问题。网络分通信层、协议层、应用层,通信层选用熟悉的Boost.Asio,协议层考虑扩展性等因素选择protobuf,通信层采用回调模式。

    自己做C++开发已经很多年了,C++不像其他语言有很多现成的框架,基本上C++都要自己使用第三方库造轮子。造轮子主要在业务流程、网络、数据库三个方面。今天想先把网络解决了,为以后不用造轮子做准备。

    网络分为三层:通信层、协议层、应用层。通信层多种多样,有用操作系统原生网络类实现的,有用第三方网络库实现的(例如Boost.Asio、ZeroMQ等),暂时先用Boost.Asio,这个比较熟悉、简单、跨平台、可以异步,以后不适用了,可以随时换成其他网络库。协议层的话,一般是自定义协议(例如字节流协议、json协议、xml协议等)或是第三方协议类(例如protobuf等),考虑到协议的扩展性、自解释性和效率,选择protobuf作为协议层,不是用grpc作为通信层和协议层,是因为感觉grpc有点反人类。通信层采用回调模式,注册对应的回调函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值