【问题标题】:Boost asio - multiple streambufs or one per connection?Boost asio - 多个流缓冲区或每个连接一个?
【发布时间】:2012-02-01 20:37:19
【问题描述】:

我正在使用 Boost asio 发送和接收帧 TCP 消息。有谁知道使用 streambuf 的正确方法吗?

我是否应该将每个连接接收到一个流缓冲区中,然后解析出消息以在我的应用程序中传递?

或者我可以读入每条消息的单个流缓冲区,然后将流缓冲区本身传递出去吗?

理想情况下,我想要一种将单个数据字段解析到消息中/从消息中解析出来的简单方法,例如使用 istream/ostream。

任何建议表示赞赏!

【问题讨论】:

    标签: c++ boost boost-asio


    【解决方案1】:

    通常您不希望传递缓冲区,而是希望将内容反序列化为某种更容易传递的内部消息形式。您可能想研究 Google 的协议缓冲区或增强序列化等内容,以允许您通过网络发送真正的消息。

    通常,您希望为每个连接使用一个缓冲区,在读取处理程序中反序列化消息,并将缓冲区重用于下一次读取。

    【讨论】:

    • 谢谢。我假设我需要单独的缓冲区来发送/接收?
    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2016-04-03
    相关资源
    最近更新 更多