自己做C++开发已经很多年了,C++不像其他语言有很多现成的框架,基本上C++都要自己使用第三方库造轮子。造轮子主要在业务流程、网络、数据库三个方面。今天想先把网络解决了,为以后不用造轮子做准备。
网络分为三层:通信层、协议层、应用层。通信层多种多样,有用操作系统原生网络类实现的,有用第三方网络库实现的(例如Boost.Asio、ZeroMQ等),暂时先用Boost.Asio,这个比较熟悉、简单、跨平台、可以异步,以后不适用了,可以随时换成其他网络库。协议层的话,一般是自定义协议(例如字节流协议、json协议、xml协议等)或是第三方协议类(例如protobuf等),考虑到协议的扩展性、自解释性和效率,选择protobuf作为协议层,不是用grpc作为通信层和协议层,是因为感觉grpc有点反人类。通信层采用回调模式,注册对应的回调函数。

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

被折叠的 条评论
为什么被折叠?



