protobuf序列化之后为二进制数据,数据中可能包含 ‘\0’,直接转换为char *类型会导致发送数据不完整。
解决方法:

void buildProtobufMsg(const string& test,zmq::message_t *msg)
{
if (msg == nullptr)
{
return;
}
Test::ProtoBufData data;
data.set_test(test);

int size = data.ByteSize();
char arr[size];
data.SerializeToArray(arr,size);

msg->rebuild(size);
memcpy(msg->data(),arr,size);
}
 
切记不可将序列化之后的数据转成char * 发送,否则导致数据不完整。

调用:
zmq::message_t msg;
buildProtobufMsg(string("hello“),&msg);
zmqsocket.send(msg);
 
【转】:https://blog.csdn.net/bubbleyang/article/details/82628059

windows:https://blog.csdn.net/gao271003105/article/details/81028944

最新文章

  1. mongodb 启动脚本和配置
  2. .net 验证码
  3. Fibers in JVM
  4. 强大的commons
  5. JavaScript事件---事件绑定和深入
  6. mac上安装gradle
  7. Linux 性能监测:Network
  8. java.lang.NoClassDefFoundError Adding a jar to an RCP application
  9. kafka-manager安装
  10. c语言字符串翻转系列
  11. 一个解析RTSP 的URL函数
  12. [Q]升级/重新获取授权步骤
  13. 锋利的jQuery中的事件与动画
  14. 虹软人脸检测和识别C# - API
  15. Alibaba Java Coding Guidelines
  16. <Flume><Source Code><Flume源码阅读笔记>
  17. Angular 手动解析表达式
  18. 58.UIScrollView XIB拖拽约束
  19. centos7 RabbitMQ部署
  20. spring boot 事务配置

热门文章

  1. postgresql 两表关联更新
  2. 2018-8-10-win10-UWP-访问网页
  3. Java中this的基础用法
  4. Gym 101981K bfs
  5. 转译es6原生原生对象及方法,如Object.assign,Object.keys等,及promise
  6. CSS Id 和 Class
  7. AutoCAD2016简体中文破解版32位64位下载
  8. mongodb update操作
  9. jmeter 参数化3种
  10. 树莓派自动播报温湿度到QQ空间、微博