我想深入了解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