我想深入瞭解Qt開發中的Google協議緩衝區,但是我很難弄清楚如何最好地融入它們。Qt + protobuf,類型?
最終,我想使用協議緩衝區發送QUdpSocket
和QTcpSocket
。
在協議緩衝區message
到通過套接字(QByteArray
)發送數據然後再在另一端再次返回的最佳方法是什麼?
Person person; // a protobuf object
person.set_id(123);
person.set_name("Bob");
person.set_email("[email protected]");
std::ostringstream out;
person.SerializeToOstream(&out);
QByteArray byteArray(out.str().c_str());
sendSerializedPersonOverQTcpSocket(byteArray);
回讀一個protobuf的對象從QByteArray
:
沒有錯,但你需要一些方法來確定消息另一方面。另外,您需要確定數據的長度。 Protobuf不會在內部完成這些任務。此外,流輸出版本是格式化程序中速度最慢的 - 矢量/數組輸出速度更快。 – 2010-11-23 07:15:15
我一直在嘗試使用`SerializeToArray`方法,但無法弄清楚如何轉換爲`QByteArray`。你能舉一個例子嗎? – Jay 2010-11-23 15:30:39