给定以下伪代码。我将如何读取给定的数据
问问题
1005 次
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
Socket
有getInputStream()
方法。您将使用从它返回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 回答