0

我已经问了几个关于套接字传输的协议缓冲区的问题......再次,当我想在服务器端从客户端接收数据时遇到问题。

这是客户端代码:

int sendSystem(int sockfd, const void *buf, size_t nbytes, int flags) {
return ::send(sockfd, buf, nbytes, flags);

}

就像客户端确实通过代表每个字节的整数发送数据一样。所以数据是以字节为单位传输的。

这是服务器端代码:

GameRequest gameRequest=GameRequest.parseFrom(CodedInputStream.newInstance(socket.getInputStream()));
GameRequest gameRequest=GameRequest.parseDelimitedFrom(socket.getInputStream());
GameRequest gameRequest=GameRequest.parseFrom(socket.getInputStream());

我已经尝试了上述每种方法来接收数据并对其进行解析......结果没有一个是好方法......大多数情况下我只是收到一条消息“消息具有无效标签”,或者如果我打开调试模式,它只是在上面的代码行待命,我无法进入下一步或进入调用方法,因为按钮跳过并进入已禁用...

4

0 回答 0