Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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
通过protobuf CodedOutputStream和CodedInputStream从java中的套接字进行写入和读取_Java_Protocol Buffers - Fatal编程技术网

通过protobuf CodedOutputStream和CodedInputStream从java中的套接字进行写入和读取

通过protobuf CodedOutputStream和CodedInputStream从java中的套接字进行写入和读取,java,protocol-buffers,Java,Protocol Buffers,所以我有一个套接字,我使用protobuf CodedOutputStream发送一些数据,如下所示: int size = myMessage.getSerializedBytes(); out.writeRawVarint32(size) ; // out = CodedOutputStream created from a java.io.OutputStream myMessage.writeTo(out); out.flush(); 客户机代码编译和写入。如何在服务器端正确阅

所以我有一个套接字,我使用protobuf CodedOutputStream发送一些数据,如下所示:

 int size = myMessage.getSerializedBytes();
 out.writeRawVarint32(size) ; // out = CodedOutputStream created from a java.io.OutputStream
 myMessage.writeTo(out);
 out.flush();
客户机代码编译和写入。如何在服务器端正确阅读此内容?如果我使用
DataInputStream
readByte()读取大小,那么大小将为负值。。。如果我使用
CodedInputStream
通过readRawVarint32读取大小,我会得到一个大值,是我发送的序列化消息大小的10倍

如何从java中的InputStream读取protobuf消息

CodedInputStream
数据输入流


我阅读了文档,但在任何地方都找不到这篇文档。我需要降低到协议级别并开始调试字节吗?

在IDE中键入的内容要小心,我在OutputStream定义中犯了一个小错误:

   OutputStream out = new ObjectOutputStream( client.getOutputStream() );
 
我正在研究如何序列化protobuf消息。我想一开始我想我应该使用ObjectOutputStream,添加了它,然后忘记了它。然后离开了它,我想知道为什么我不能读取protobuf接收端的数据。当我修复它并使用正确的
OutputStream
和protobuf方法读/写数据时,一切都开始工作了