繁体   English   中英

读取Socket流数据并读取前2个字节,查找其余消息长度

[英]Read Socket stream data and read first 2 bytes, find rest of message length

如何从输入流中读取前2个字节并将2个字节的数据转换为实际的int长度值,然后读取其余消息并将其复制到字节数组中。 数据数组的其余部分应在从流中读取前2个字节后定义,有人知道高效的逻辑吗?

使用DataInputStream. 使用readUnsignedShort()方法返回长度字,然后使用readFully()方法读取以下数据。

这将从字节数组创建一个字符串。 根据需要进行调整。

InputStream in;
try {
    in = socket.getInputStream();
    DataInputStream dis = new DataInputStream(in);

    int len = dis.readInt();
    byte[] data = new byte[len];
    if (len > 0) {
       dis.readFully(data);
    }           
    String sReturn = new String(data); 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM