Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ReadRawVarint32()存在问题-Google协议缓冲区csharp端口_C#_Java_Protocols_Protocol Buffers_Protobuf Net - Fatal编程技术网

C# ReadRawVarint32()存在问题-Google协议缓冲区csharp端口

C# ReadRawVarint32()存在问题-Google协议缓冲区csharp端口,c#,java,protocols,protocol-buffers,protobuf-net,C#,Java,Protocols,Protocol Buffers,Protobuf Net,我正在尝试使用Google协议缓冲区(具体地说,Jon Skeet的csharp端口)从服务器中的客户端接收一些数据。我做了以下工作: using Google.ProtocolBuffers; ... Stream InputStream = client.GetStream(); CodedInputStream input = CodedInputStream.CreateInstance(InputStream); ... uint length = CodedInputStream.R

我正在尝试使用Google协议缓冲区(具体地说,Jon Skeet的csharp端口)从服务器中的客户端接收一些数据。我做了以下工作:

using Google.ProtocolBuffers;
...
Stream InputStream = client.GetStream();
CodedInputStream input = CodedInputStream.CreateInstance(InputStream);
...
uint length = CodedInputStream.ReadRawVarint32(InputStream);
我从最后一行得到了一条无法解决的错误消息:访问非静态成员“Google.ProtocolBuffers.CodedInputStream.ReadRawVarint32()”需要对象引用

基本上,我想在java版本中这样做:

InputStream iStream = client.getInputStream();
CodedInputStream input = CodedInputStream.newInstance(iStream);
int read = is.read();
if(-1 != read) {
    int length = CodedInputStream.readrawVarint32(read, is);
    byte[] bytes = input.readRawBytes(length);
    // My proto stuff
    Communication.Packet container = null;
    try {
        container = Communication.Packet.parseFrom(bytes);
    } catch (InvalidProtocolBufferException iPBE) {
        continue;
    }
    AbstractMessage message = container;
    if(container.hasLogin()) {
        message = container.getLogin();
    }
    System.out.println(message.toString());
有什么帮助吗


提前感谢。

错误消息表示您正在尝试访问非静态(即成员方法),而不使用对象引用。您需要更改方法调用以操作CodedInputStream类型的对象,而不是CodedInputStream类:

input.ReadRawVarint32()