-1

给定以下伪代码。我将如何读取给定的数据

在此处输入图像描述

4

3 回答 3

3

使用DataInputStream让您的生活变得轻松。

DataInputStream in = new DataInputStream(socket.getInputStream());
short myShortStreamSize = in.readShort();
byte[] payload = new byte[myShortStreamSize];
in.readFully(payload);
于 2013-02-08T16:32:24.213 回答
1

SocketgetInputStream()方法。您将使用从它返回InputStream和读取myShortStreamSize的字节转换为 a byte[],将其转换为表示您的有效负载大小的 int/long ,然后读入另一个更大new byte[payloadSize]的有效负载本身。

于 2013-02-08T16:26:26.780 回答
0

你可以试试JBBP

@Bin class Struct { byte [] payload; }
@Bin class ParsedStream { Struct [] structs; }
ParsedStream parsed = JBBPParser.prepare("structs[_] { ushort size; byte [size] payload; }").parse(theInStream).mapTo(ParsedStream.class);
于 2014-08-15T09:08:06.887 回答