野獸的WebSocket例如存儲在一個多緩衝中的數據:試圖瞭解了boost ::獸多緩衝
實現使用一個或多個字符數組大小不等的 的序列。附加的字符數組對象被附加到 該序列以適應字符大小的變化 序列。
當看着界面,它不是完全清楚它是如何工作的。如果我閱讀這些描述,它可以看作是一組緩衝區。但看起來輸出只是一塊數據。這是否意味着「一個或多個陣列」只適用於內部結構?
在該示例代碼的數據被讀入緩衝區如下:m_websocketStream.async_read(m_buffer.....
是否每個async_read操作創建一個新的內部緩衝器。
如果是這種情況,如何解釋它的另一端。例如。如何將它讀入std :: string或std :: vector。
查看源數據()時,會返回前向聲明const_buffer_type。
對於數據部件的幫助信息提供了以下信息,這是有很大幫助不:
用來表示輸入序列作爲緩衝區的列表的類型。 使用const_buffers_type = implementation_defined;
該定義似乎來自頭文件boost/asio/buffer.hpp也包括在內。然而整體結構對我來說有些模糊。
我只是試圖瞭解如何處理數據作爲字節或將其轉換爲std :: string。
試過以下,而這也是不允許的:
std::string(boost::asio::buffer_cast<const char*>(m_buffer.data()) ,boost::asio::buffer_size(m_buffer.data()));
任何人誰可以告訴我一下?
我認爲最後一個例子中有一個錯字。我認爲它應該是beast :: buffers_front(...) – Jakob
是的,我將這個函數重命名爲'buffers_front'作爲一組更改的一部分,以使所有名稱一致。我編輯了示例代碼 –