背景
我最近刚开始学习网络和google的协议缓冲区,以便在java客户机和python服务器之间建立通信。从python服务器向java客户机发送消息非常好,但是相反的方法(从java到python)总是失败。在
问题
在检查了双方的消息长度后,我发现接收方(python)丢失了java代码传输的一些字节java side:
12 28 08 0b 12 24 15 00 00 80 3f 1a 1b 09 00 00 00 00 00 00 f0 3f 11 00 00 00 00 00 00 f0 3f 19 00 00 00 00 00 00 f0 3f 22 00
python side:
12 28 08 0b 12 24 15 00 00 80 3f 1a 1b 09 00 00 00 00 00 00 f0 3f 11 00 00 00 00 00 00 f0 3f
如您所见,最后10个字节丢失。我想不出这个问题。在
代码
下面是我的java代码// Both Message and UPDATEs are message types I defined in my .proto file
Message message = Message.newBuilder()
.setUpdate(UPDATEs.newBuilder()
.setTimeStamp(11)
.addUpdates(state))
.build();
//System.out.println(message.toString());
System.out.println(message.toByteArray().length); // result -> 42
//System.out.println(byteArrayToHex(mes