2013-10-04 27 views
2

我正在通過Windows命名管道將Java應用程序的序列化消息發送到.net c#應用程序。Protocol Buffers - protobuf-csharp-port:相當於JAVA API調用CodedInputStream.getBytesUntilLimit()存在嗎?

我編譯了兩個環境的.proto文件。在C#端,我使用protobuf-csharp-port。

我打算在流上使用長度前綴的包。

在閱讀c#端的messageLength之後,我使用了CodedInputStream.pushLimit(messageLength)。然後我想找回在這樣的循環中使用cis.getBytesUntilLimit()的實際消息:

do 
    { 
     builder.mergeFrom(cis); 
    } while (cis.getBytesUntilLimit() > 0); 

但不幸的是我無法找到的protobuf-CSHARP端口的方法getBytesUntilLimit()。

問題:getBytesUntilLimit()是否存在於protobuf-csharp-port中? protobuf-csharp-port是否真的以.net的形式實現了所有來自Google的JAVA API(或者至少是它的等效形式)?

謝謝。

回答

1

只要閱讀protobuf-csharp-port的源代碼並注意到屬性ReachedLimit。我的問題的答案是:

do 
{ 
    builder.MergeFrom(cis); 
} while (!cis.IsAtEnd); 
相關問題