1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      UDP暢聊系統(tǒng)數(shù)據(jù)的序列化與反序列化-創(chuàng)新互聯(lián)

      comm中實(shí)現(xiàn)基本數(shù)據(jù)的序列化與反序列化

      創(chuàng)新互聯(lián)建站主營(yíng)江安網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),江安h5小程序制作搭建,江安網(wǎng)站營(yíng)銷推廣歡迎江安等地區(qū)企業(yè)咨詢

      基于jsoncpp庫,由c++編寫,用于為網(wǎng)絡(luò)數(shù)據(jù)提供序列化及反序列化功能

      使用的幾個(gè)類

      Json::Value 可表示所有的類型,int,float,string等

      Json::Reader 將json字符串解析到Value中,反序列化,使用Parse函數(shù)

      Json::Writer 將Value轉(zhuǎn)換成json字符串型,序列化

      它的兩個(gè)子類:Json::FastWriter 和Json::StyledWriter 兩種不同的顯示風(fēng)格

      Makefile

       1 ROOT_PATH=$(shell pwd)
        2 INCLUDE=-I$(ROOT_PATH)/lib/include
        3 LIB=-L$(ROOT_PATH)/lib/lib
        4 
        5 my_json:my_json.o udp_data.o
        6     g++ -o $@ $^ $(LIB)  -ljsoncpp
        7 %.o:%.cpp
        8     g++ -c $< $(INCLUDE)    
        9 .PHONY:clean
       10 clean:
       11     rm -f *.o my_json

      my_json中編寫序列化與反序列化

      my_json.h

        1 #include 
        2 using namespace std;
        3 #include "json/json.h"
        4 #include 
        5 
        6 class my_json
        7 {
        8 public:
        9     my_json();
       10     ~my_json();
       11     static int serialize(string& _out_str,Json::Value& _out_val);
       12     static int deserialize(Json::Value& _val,string& _in_str);
       13 
       14 };
      ~

      my_json.cpp

       1 #include "my_json.h"
        2 
        3 my_json::my_json()
        4 {}
        5 
        6 my_json::~my_json()
        7 {}
        8 
        9 int my_json::deserialize(Json::Value& _val,string& _in_str)
       10 {
       11     Json::Reader _read;
       12     if(_read.parse(_in_str,_val,false))
       13     {
       14         return 0;
       15     }
       16     return -1;
       17 }
       18 int my_json::serialize(string& _out_str,Json::Value& _out_val)
       19 {
       20 #ifdef _DEBUG_
       21     Json::FastWriter _write;
       22     _out_str=_write.write(_out_val);
       23 #else
       24     Json::StyledWriter _write;
       25     _out_str=_write.write(_out_val);
       26 #endif
       27     return 0;
       28 }

      udp_data中測(cè)試序列化與反序列化

      udp_data.h

       1 #include 
        2 using namespace std;
        3 #include 
        4 
        5 class udp_data
        6 {
        7 public:
        8     udp_data();
        9     ~udp_data();
       10     void to_string(string& name,string &msg,string& school,string& cmd,strin    g& _out_str);
       11     void to_value(string& _out_name,string& out_msg,string& out_school,strin    g& out_cmd,string& in_str);
       12 protected:
       13     string _name;
       14     string _msg;
       15     string _school;
       16     string _cmd;
       17 };

      udp_data.cpp

       1 #include "udp_data.h"
        2 #include "my_json.h"
        3 udp_data::udp_data()
        4     :_cmd("None")
        5 {}
        6 
        7 udp_data::~udp_data()
        8 {}
        9 
       10 void udp_data::to_string(std::string& name,std::string& msg,std::string& sch    ool,std::string& cmd,std::string& _out_str)
       11 {   
       12     _name=name;
       13     _msg=msg;
       14     _school=school;
       15     _cmd=cmd;
       16     Json::Value root;
       17     root["_name"]=_name;
       18     root["_msg"]=_msg;
       19     root["_school"]=_school;
       20     root["_cmd"]=_cmd;
       21     my_json::serialize(_out_str,root);
       22 }
       23 
       24 void udp_data::to_value(std::string& out_name,std::string& out_msg,std::stri    ng& out_school,std::string& out_cmd,std::string& in_str)
       25 {
       26     Json::Value val;
       27     my_json::deserialize(val,in_str);
       28     out_name=val["_name"].asString();
       29     out_msg=val["_msg"].asString();
       30     out_school=val["_school"].asString();
       31     out_cmd=val["_cmd"].asString();
       32     _name=out_name;
       33     _msg=out_msg;
       34     _school=out_school;
       35     _cmd=out_cmd;
       36 }
       37 
       38 
       39 int main()
       40 {
       41 //  string out_str;
       42     udp_data _data;
       43 //  string name="xiaozhi";
       44 //  string msg="hello world";
       45 //  string school="XPU";
       46 //  string cmd="None";
       47 //  _data.to_string(name,msg,school,cmd,out_str);
       48 //  cout<

      序列化運(yùn)行結(jié)果:

      UDP暢聊系統(tǒng)數(shù)據(jù)的序列化與反序列化

      反序列化運(yùn)行結(jié)果:

      UDP暢聊系統(tǒng)數(shù)據(jù)的序列化與反序列化

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


      當(dāng)前名稱:UDP暢聊系統(tǒng)數(shù)據(jù)的序列化與反序列化-創(chuàng)新互聯(lián)
      URL鏈接:http://www.ef60e0e.cn/article/phceh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        陵川县| 建湖县| 沙坪坝区| 剑川县| 长丰县| 阿克陶县| 禹州市| 剑河县| 诸暨市| 镇坪县| 宁陵县| 来安县| 鄂尔多斯市| 浙江省| 青阳县| 奉贤区| 城口县| 资源县| 平顺县| 隆尧县| 威远县| 兰西县| 泾源县| 木里| 凌源市| 鸡东县| 喜德县| 临桂县| 龙游县| 栖霞市| 日土县| 绩溪县| 万州区| 宣化县| 家居| 沙雅县| 洛浦县| 北碚区| 长宁县| 政和县| 齐齐哈尔市|