2012-02-01 66 views
1

我使用Boost asio發送和接收構建的TCP消息。有誰知道使用streambuf的正確方法嗎?Boost asio - 多個streambufs或每個連接一個?

我應該在每個連接中接收到一個streambuf,並解析消息以在我的應用程序中傳遞嗎?

或者我可以讀入每個消息的單個streambuf,並將streambufs本身傳遞給它?

理想情況下,我想要一個簡單的方法來解析單個數據字段進/出消息,如使用istream/ostream。

任何意見讚賞!

回答

1

通常情況下,您不想傳遞緩衝區,您想要將內容反序列化爲某種形式的內部消息,這更容易傳遞。您可能希望調查Google的協議緩衝區或增強序列化等功能,以便您通過線路發送實際消息。

通常情況下,您希望在每個連接使用一個緩衝區,在讀取處理程序中反序列化消息,並重新使用該緩衝區進行下一次讀取。

+0

謝謝。我假設我需要單獨的緩衝區發送/接收? – James 2012-02-01 20:47:24

+0

@詹姆斯,是的,它會讓你的生活更輕鬆... – Nim 2012-02-01 20:49:54

+0

非常感謝。 – James 2012-02-01 20:51:42

相關問題