2
A
回答
6
Protocol Buffers是一個結構化的數據序列化(和反序列化)框架。它只關心將預定義數據類型的選擇編碼到數據流中。你對該流的做法取決於你。引述維基:
如果你想 寫入多個消息發送到單個文件或流,它是由 到您跟蹤其中一個 消息結束,下開始的。 協議緩衝區連線格式不是 自定義,因此協議緩衝區 解析程序無法確定消息自己終止的位置。最簡單的 解決這個問題的辦法就是在你寫 之前寫下每條消息的大小 。當你讀取回來的消息,你讀 的大小,然後讀取字節到一個 單獨的緩衝區,然後從該緩衝區解析 。
所以是的,你可以使用它來通過套接字發送/接收多個對象,但你必須做一些額外的工作來區分每個對象流。
1
我不熟悉的protobuf,但the documentation說,你可以創建一個FileInputStream
(然後可以用於創建CodedInputStream
)使用的文件描述符。如果你在一個支持BSD套接字的系統上,你應該可以給它一個套接字文件描述符,而不是普通的套接字文件描述符。
0
協議緩衝區不處理任何周圍的網絡/文件I/O操作。您可能要考慮使用Thrift,其中包括套接字通信庫和具有序列化/反序列化的服務器庫。
相關問題
- 1. C++ - 谷歌的protobuf
- 2. nanopb無法與谷歌protobuf
- 3. 關於從谷歌
- 4. 錯誤使用時,谷歌的protobuf的
- 5. MergeFrom *與ParseFrom *在谷歌的protobuf庫
- 6. 谷歌protobuf的如何添加子兒
- 7. 谷歌protobuf分配的消息崩潰
- 8. 關於谷歌perftools HEAPCHECK
- 9. 關於谷歌語音API
- 10. 關於android谷歌api-streetview
- 11. 關於谷歌adwords轉換
- 12. 關於谷歌地圖iOS
- 13. 谷歌protobuf api在android谷歌雲數據存儲
- 14. 關於我的代碼谷歌Recaptcha
- 15. 需要關於谷歌API的信息
- 16. 關於谷歌地圖MVCObject的東西
- 17. 關於谷歌應用Gmail的API a
- 18. 關於谷歌地圖API的問題
- 19. 關於谷歌的機器人
- 20. 關於NSTimeZone.seconds的混淆從谷歌
- 21. '可選重複'與谷歌protobuf爲Java
- 22. 關於關鍵API谷歌地圖
- 23. 關於核心netty和Protobuf的教程
- 24. 谷歌的protobuf生成的Java不支持toByteArray
- 25. 谷歌:: android的NDK使用protobuf的發展
- 26. 谷歌關閉jQuery的.data?
- 27. 關於谷歌Play應用簽名
- 28. 關於谷歌分析收集數據
- 29. 關於谷歌爬行PHP頁面
- 30. 關於CakePHP和谷歌圖表
你可以提供一個使用protobuf來處理對象流的示例嗎? – wamp 2010-08-26 03:57:17
api實際上有一個類,通過編寫一些標識符字節和填充每個對象流的大小字節來幫助識別另一側的每個對象。該課程還將處理解碼。您可以在這裏看到一些非常簡短的示例代碼: http://code.google.com/apis/protocolbuffers/docs/reference/cpp/google.protobuf.io.coded_stream.html – 2010-08-26 04:14:37