前言
那么这里博主先安利一些干货满满的专栏了!
首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。
高质量博客汇总https://blog.csdn.net/yu_cblog/category_12379430.html
项目简介
本项目是博主在学习protobuf的同时,顺便学用了一下httplib做的,技术含量不算特别高。不过我也封装好分享给大家了。希望大家能学到东西。
项目地址
GitHub - Yufccode/An-AddrBook-Framework-based-on-Protobuf-and-httplib: An online address book project framework based on protobuf and httplib 基于protobuf和httplib的在线通讯录项目框架。An online address book project framework based on protobuf and httplib 基于protobuf和httplib的在线通讯录项目框架。 - GitHub - Yufccode/An-AddrBook-Framework-based-on-Protobuf-and-httplib: An online address book project framework based on protobuf and httplib 基于protobuf和httplib的在线通讯录项目框架。https://github.com/Yufccode/An-AddrBook-Framework-based-on-Protobuf-and-httplib
README
An online address book project framework based on protobuf and httplib
基于protobuf和httplib的在线通讯录项目框架。
最新更新日期
2023年8月20日
项目需求
P将实现一个网络版本的通讯录,模拟实现客户端与服务端的交互,通过 Protobuf 来实现各端之间的协议序列化。
需求如下:
客户端可以选择对通讯录进行以下操作:
-
新增一个联系人
-
删除一个联系人
-
查询通讯录列表
-
查询一个联系人的详细信息
-
服务端提供增、删、查能力,并需要持久化通讯录。
-
客户端、服务端间的交互数据使用 Protobuf 来完成
注意:鉴于作者只是利用本项目学习和使用P融通部分工具,因此,本Github仓库中只完成了项目框架,没有实现整个项目。后续作者会继续更新和完善此项目。
完整项目可见另一位作者:protobuf: protobuf 教学仓库 - Gitee.com
本仓库完成内容:
-
搭建了客户端和服务端的基本框架
-
实现了使用protobuf新增联系人的功能,但暂时没有实现联系人功能的本地存储,只实现了服务端stdout的信息打印。
-
项目使用httplib库作为服务器,地址:GitHub - yhirose/cpp-httplib: A C++ header-only HTTP/HTTPS server and client libraryA C++ header-only HTTP/HTTPS server and client library - GitHub - yhirose/cpp-httplib: A C++ header-only HTTP/HTTPS server and client libraryhttps://github.com/yhirose/cpp-httplib。有兴趣的读者,可以下载我另一个仓库中的Reactor服务器作为底层来使用:GitHub - Yufccode/Reactor-based-HyperWebServer: A high-performance web server based on the multiplexer actor mode, with an underlying implementation using the epoll modelA high-performance web server based on the multiplexer actor mode, with an underlying implementation using the epoll model - GitHub - Yufccode/Reactor-based-HyperWebServer: A high-performance web server based on the multiplexer actor mode, with an underlying implementation using the epoll modelhttps://github.com/Yufccode/Reactor-based-HyperWebServer
项目运行
目录结构
升级GCC
如果使用 centOS 环境,yum源带的g++ 最新版本是4.8.5,发布于2015年,年代久远。编译该项目会出现异常。将 gcc/g++ 升级为更高版本可解决问题。
升级参考:CentOS 7上升级/安装gcc - 掘金CentOS 7官方源带的gcc最新版本是4.8.5,发布于2015年,年代久远且不支持c++14。要编译c++14及以上项目,必须要升级现有版本或者安装高版本的gcc。 问题的解决办法主要有两种:手动编译安装(也可以从其他机器拷贝或者网上下载),或从源安装。大多数情况下本人都…https://juejin.cn/post/6844903873111392263
Protobuf安装
参考博客:http://t.csdn.cn/FMs7Ghttp://t.csdn.cn/FMs7G
运行项目
准备好环境之后就可以直接make Client和Server里面的makefile进行客户端和服务端的运行。