请教一个boost反序列化抛出text_iarchive invalid signature异常的问题?

luo6620378xu 2013-01-14 04:04:11
我采用boost的序列化库,将数据信息序列化之后,跨网络传输。
代码如下:



//反序列化mreq包
stringstream os(mreq_ch);

spfs_log(INFO,low,"ready to deserlization,context=%s.",os.str().c_str());
try
{
text_iarchive(os)>>req;//在这一行构造抛出异常
}
catch(const exception &e)
{
spfs_log(ERR,high,"text_iarchive err %s.",e.what());
}




但是序列化却没有问题:


stringstream os ;
text_oarchive(os)<<req;

size_t req_len=strlen(os.str().c_str());



日志中的异常信息:
text_iarchive err invalid signature

请问这是什么原因造成的呢?
谢谢!
...全文
320 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-01-15
  • 打赏
  • 举报
回复
是否有个地方可以配置为不检查签名?
luo6620378xu 2013-01-14
  • 打赏
  • 举报
回复
引用 5 楼 derekrose 的回复:
签名的格式可能有问题,你看看先
嗯,请问您的指的是什么? 那个英语翻译成中文确实是:不合法的签名。 但是就算是空字符串处构造一个text_iarchive对象也不应该有这样子的异常抛出才对啊。 在网上搜索了一下,这些内容几乎没有,在 http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece76310498a36420ad7743ca085482281cd1f84642c101a39feee677f5746ce95213a40e95e5c9cae6d33711e7ff6ced5de1cd6ebc42c2c8d7337761c874b17d50eaebf107a9c76c74de8d95ba7e1ac7487eb8f93895b03970e443c97f0fa015c509931ab4226e3d7d813400343fcaa7032e859063ee92157c247ee9131797183e1dc2c5bb35ac71265&p=8e34c41a86cc41ae5ba98a2d0216d038&newp=8e57c64ad6c40af517aac4710d17d4345c5bc4387ebad610789fc907d4&user=baidu&fm=sc&query=boost+invalid+signature+%D0%F2%C1%D0%BB%AF&qid=&p1=1 跟我一样子的问题,遗憾的是没有说明原因和解决方案。
derekrose 2013-01-14
  • 打赏
  • 举报
回复
签名的格式可能有问题,你看看先
luo6620378xu 2013-01-14
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
果断抓包
发现mreq_ch是空的
赵4老师 2013-01-14
  • 打赏
  • 举报
回复
果断抓包
luo6620378xu 2013-01-14
  • 打赏
  • 举报
回复
补充一下问题: 我的打包数据中,只有vector容器,其他数据都是基本类型。 包括uint32_t,uint64_t等等。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧