Boost asio-多个streambufs或每个连接一个

Boost asio - multiple streambufs or one per connection?

本文关键字:连接 一个 asio- 多个 streambufs Boost      更新时间:2023-10-16

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

我应该为每个连接接收一个streambuf,并解析消息以在应用程序中传递吗?

或者,我可以为每条消息读取一条streambuf,并将streambuf本身传递给其他人吗?

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

非常感谢您的建议!

通常,您不想传递缓冲区,而是希望将内容反序列化为某种形式的内部消息,这样更容易传递。你可能想研究一些东西,比如谷歌的协议缓冲区或增强序列化等,让你可以通过网络发送真实的消息。

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