C++客户端向Java服务器发送一个字节数组。前两个字节表示剩余字节数组的长度。客户端使用无符号短,但java中没有无符号短。我如何读取我的服务器中的前两个字节?
还有一个问题是,在C++中,第一个字节表示低8位,第二个字节表示高8位。例如,这两个字节是35 02,转换成十进制应该是565,而不是13570。
我的java代码是这样的:
DataInputStream dis = new DataInputStream(is);
int b1 = dis.readUnsignedByte();
int b2 = dis.readUnsignedByte();
int length = (b2 << 8) | b1;
它似乎有效。但我无法确保它在任何情况下都是准确的。希望您的建议.thx~