消息包 - 如何查找表示的字符串?

时间:2015-07-09 12:13:41

标签: c++ messagepack

消息包网站中的

Message Pack

有"尝试"上面的链接显示了数据的表示字符串有多长。

我有一个基于消息包git hub

中提供的示例的小脚本
#include <msgpack.hpp>
#include <vector>
#include <string>
#include <iostream>

int main(void) {
    using namespace std;

    msgpack::sbuffer buffer;

    msgpack::packer<msgpack::sbuffer> pk(&buffer);
    pk.pack_map(2);
    pk.pack(string("SerialNumber"));
    pk.pack(123456789);
    pk.pack(string("Date"));
    pk.pack("1.4.14");



    //deserialize

    msgpack::unpacker pac;
    pac.reserve_buffer(buffer.size());
    memcpy(pac.buffer(),buffer.data(),buffer.size());
    pac.buffer_consumed(buffer.size());


    msgpack::unpacked result;
    while(pac.next(&result))
    {
        cout<<result.get()<<endl<<endl;

    }

效果很好,但我想要检索打包数据后面的String。就像在&#34;尝试!&#34;链接。我该怎么找到它?

谢谢

1 个答案:

答案 0 :(得分:1)

  

我想检索打包数据后面的字符串

您可以做的是以十六进制格式打印简单缓冲区的内容:

const char *data = buffer.data();
for (int i = 0; i < buffer.size(); i++)
    printf("%02x ", (unsigned char) data[i]);