当前位置: 首页 > news >正文

珠海手机网站建设宝塔和WordPress一样吗

珠海手机网站建设,宝塔和WordPress一样吗,游戏网页版入口,家具网站首页设计本文首发于 慕雪的寒舍 以tcpServer的计算器服务为例#xff0c;实现用jsoncpp来进行序列化和反序列化 阅读本文之前#xff0c;请先阅读 自定义协议 | 序列化和反序列化 | 以tcpServer为例 1.安装jsoncpp 我所用的系统是centos7.6#xff0c;先用下面的命令查找相关的包 …本文首发于 慕雪的寒舍 以tcpServer的计算器服务为例实现用jsoncpp来进行序列化和反序列化 阅读本文之前请先阅读 自定义协议 | 序列化和反序列化 | 以tcpServer为例 1.安装jsoncpp 我所用的系统是centos7.6先用下面的命令查找相关的包 sudo yum list | grep jsoncpp-devel显示出来的包如下 Repository epel is listed more than once in the configuration jsoncpp-devel.x86_64 0.10.5-2.el7 epel 随后安装这个包 sudo yum install jsoncpp不知道为什么安装jsoncpp-devel.x86_64显示找不到相关包 或者采用下面的两个命令 sudo yum install epel-release sudo yum install jsoncpp-devel如果执行完毕后显示找不到jsoncpp尝试重新安装epel-release 刚开始我显示epel已经安装但是找不到jsoncpp这个包我在重新安装了epel后就能正常安装了 sudo yum rm epel-release sudo yum install epel-release sudo yum install jsoncpp-devel如下图正常查找到并安装完毕 在centos8下安装完毕后路径如下 $ ls /usr/include/json allocator.h assertions.h autolink.h config.h features.h forwards.h json.h reader.h value.h version.h writer.h1.1 什么是json json是一个kv键值对的序列化方式每一个key都对应了一个value {data: value }这就有点类似c中的map不过json能做的更多 {data1: value,data2: {key1:value1,key2:value2,key3:0,key4:true} }json可以在里面嵌套添加更多的内容不管是字符串还是整形还能是bool类型的true/false 因为json对反序列化序列化的控制很是不错可读性也很好所以被广泛使用 相比于自己写一个序列化方式直接用别人的轮子也不错 类似的序列化框架还有xml 2.代码示例 2.1 序列化 相比我们自己写的序列化方式json的使用简单多了 void serialize(std::string out) {//使用jsoncpp的代码Json::Value root;root[x] _x;root[y] _y;root[op] _ops;Json::FastWriter fw; // 这个是写成一行对于计算机来说处理的负担小// Json::StyledWriter fw; // 这个会进行格式化更好看但是内容没差距out fw.write(root); }对于fw.write(root)其返回值是一个string也方便我们接收 其中FastWriter和StyledWriter有一点区别如下 //FastWriter {data: value} //StyledWriter {data: value }简单来说StyledWriter会对我们的kv键值对进行格式化更方便人类的阅读。而FastWriter是直接写成一整行在传输的时候会方便一点因为不需要\n 2.2 反序列化 反序列化需要一个Reader来读取字符串并将其内容根据键值隐射给成员变量 bool deserialize(const std::string in) {//jsonJson::Value root;Json::Reader rd;rd.parse(in, root);_x root[x].asInt();_y root[y].asInt();_ops root[op].asInt(); }3.测试 因为jsoncpp是一个第三方库我们链接的时候需要加上命令-ljsoncpp tcpServer:tcpServer.cppg -o $ $^ -stdc11 -lpthread -ljsoncpp发送消息后可以看到json帮我们格式化为如下形式的字符串 {op:43,x:1,y:200} {op:43,x:333,y:234}4.gcc给予宏定义 为了方便对序列化采用的方式进行控制这里我使用了预处理指令ifdef/endif来进行判断只要我们在文件头定义了MYPROTOCOL这里就会采用我们自己的写的序列化方式否则采用json #define MYPROTOCOL 1 //如果define了这个那就使用自己的代码4.1 命令行 但是在文件里面修改define还是不太方便我们可以直接采用gcc的命令行参数的方式进行define的插入这么做之前要先删除文件中对MYPROTOCOL的define g -DMYPROTOCOL tcpServer.cpp -o tcpServer -lpthread -ljsoncpp g -DMYPROTOCOL tcpClient.cpp -o tcpClient -lpthread -ljsoncpp可以看到不加编译指令编译出来的服务器采用的是json的方式来序列化 添加了之后就是用我们自己写的序列化方式来序列化了 4.2 makefile 因此我们可以修改makefile来实现这一点 .PHONY:all all:tcpClient tcpServer MYSELF-DMYPROTOCOLtcpClient: tcpClient.cppg $(MYSELF) -o $ $^ -stdc11 -lpthread -ljsoncpp tcpServer:tcpServer.cppg $(MYSELF) -o $ $^ -stdc11 -lpthread -ljsoncpp.PHONY:clean clean:rm -f tcpClient tcpServer当我们需要用自己协议的时候就在最前面加上 MYSELF-DMYPROTOCOL否则直接删除这个定义或者注释掉后面的内容就能采用jsoncpp MYSELF#-DMYPROTOCOL这样就方便一些了
http://www.w-s-a.com/news/702666/

相关文章:

  • 导购 网站模板网站主题选择
  • 毕业设计医院网站设计怎么做郑州铭功路网站建设
  • 网站根域名是什么php做商城网站步骤
  • 建设网站的那个公司好网站建设万首先金手指12
  • 广东民航机场建设有限公司网站网站开发后端用什么
  • 做风帆网站需要多少钱越野车网站模板
  • 如何做网站平台销售用狗做头像的网站
  • 宝安电子厂做网站美食网页设计的制作过程
  • 网站logo提交学网站开发技术
  • 跨境电商平台网站建设广州西安官网seo推广
  • 我和你99谁做的网站小程序制作第三方平台
  • 建设银行网站用户名鹤岗网站seo
  • 做一元夺宝网站需要什么条件西安市做网站的公司
  • 零基础建设网站教程郑州做网站推广价格
  • 平面设计免费素材网站新开三端互通传奇网站
  • ppt模板免费下载 素材医疗seo网站优化推广怎么样
  • 课程网站怎么做wordpress文章改背景色
  • 网络营销从网站建设开始卖汽车配件怎么做网站
  • 手机商城网站制作公司济南想建设网站
  • .net 建网站网站网站做员工犯法吗
  • 电子商务网站建设说课稿棕色网站设计
  • 怎么做律所的官方网站红塔网站制作
  • 装一网装修平台官网惠州seo按天付费
  • 湖南建设监理报名网站东莞模块网站建设方案
  • 网站建设小组个人主页html源码
  • 响应式网站检测工具营销公司业务范围
  • 网站源码如何安装做游戏课程网站
  • 选服务好的网站建设亚洲砖码砖专区2022
  • 网站快速查找wordpress 悬停 图片 文字
  • 网站续费 多久想自己做网站该学些什么