尝试在java中使用protobuf发送和接收消息,但收到错误:协议消息
发布时间:2020-12-14 19:23:26 所属栏目:Java 来源:网络整理
导读:问题发生在服务器端,parseDelimitedFrom()调用. 客户端: C2SGainCard.Builder s = C2SGainCard.newBuilder(); C2SGainCard c2s = s.build(); GameRequest.Builder reqBuilder=GameRequest.newBuilder(); reqBuilder.setBody(c2s.toByteString()); reqBuilde
问题发生在服务器端,parseDelimitedFrom()调用. 客户端:
服务器端:
这是另一个类似的问题: 客户端:
套接字处理是一样的. 服务器端:
事实证明服务器端将在parseFrom()再次调用时中断.但是当我评论两行时:
在客户端上,parseFrom()调用刚刚工作没有问题.在frist我怀疑.proto文件有一些问题,并且已经证明那里没有问题……那么这个问题是怎么来的?那是因为我在parseFrom()调用之前错过了一些数据? 最佳答案
我不记得究竟是什么格式parseDelimitedFrom,但我怀疑你只是想在服务器端使用parseFrom.
目前尚不清楚为什么要使用os.write(request.toByteArray()),或者为什么要创建DataOutputStream.您应该只能使用OutputStream和InputStream,编写:
然后:
如果您确实需要分隔版本,则需要使用writeDelimitedTo. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |