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

使用DataInputStream让您的生活变得轻松。
DataInputStream in = new DataInputStream(socket.getInputStream());
short myShortStreamSize = in.readShort();
byte[] payload = new byte[myShortStreamSize];
in.readFully(payload);
Socket有getInputStream()方法。您将使用从它返回InputStream和读取myShortStreamSize的字节转换为 a byte[],将其转换为表示您的有效负载大小的 int/long ,然后读入另一个更大new byte[payloadSize]的有效负载本身。
你可以试试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);