首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建二进制数据流

创建二进制数据流
EN

Stack Overflow用户
提问于 2018-01-21 09:56:28
回答 1查看 602关注 0票数 0

我是C++的新手,我正在学习如何使用boost::asio进行网络编程来处理传入的二进制数据。我来自嵌入式C,在这里我会用固定的缓冲区读取从网络套接字接收到的比特和字节来编写打包器和解包器。

我想学习关于碘酒的知识。要从boost::asio中的网络套接字读取二进制数据,我正在使用streambuf。

是否有可能开发一个从流中读取数据类型并使用它们的iostream?

从std::basic_streambuf获得子类的正确方法是什么?然后使用我的数据类型从流中使用数据。我不需要定义固定大小的缓冲区来执行读取。

我不太清楚该怎么做。能不能找个合适的例子来说明我需要做什么。

我这样做主要是为了提高我的C++技能。

谢谢

登沙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-21 21:24:24

不要子类asio::streambuf

相反,可以使用可流类型或例如Boost序列化归档(boost::archive::text_oarchiveboost::archive::text_iarchive)或somesuch。这是相当高的级别,允许您序列化完整的对象图,包括多态类型和(循环)关系。

遗憾的是,Boost Serialization不能提供一个简单的框架协议,所以您的协议应该希望为每条消息建立新的连接,或者在其之上添加一个框架协议。

有很多样本。从这里开始,也许:

PS。注意其他选择

  • 直接使用boost::asio::buffer的方法要简单得多
  • 谷类食品、船长-原料药等。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48365608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档