byte 转长度

This commit is contained in:
cheney 2026-06-03 11:44:40 +08:00
parent c9a224f810
commit b212a265ee

View File

@ -51,6 +51,7 @@ import java.net.Socket;
import java.net.SocketAddress; import java.net.SocketAddress;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.security.NoSuchProviderException; import java.security.NoSuchProviderException;
import java.security.Security; import java.security.Security;
@ -6923,18 +6924,18 @@ public class SydApi4j implements SydApi {
bb.put("7F".getBytes()); bb.put("7F".getBytes());
bb.put((byte) dataType); // 数据包标志 bb.put((byte) dataType); // 数据包标志
if ( 2 == dataType ) { // 公钥 if ( 2 == dataType ) { // 公钥
bb.put(ByteUtil.shortToBytes((short) publicKey.length)); bb.put(ByteUtil.shortToBytes((short) publicKey.length, ByteOrder.BIG_ENDIAN) );
bb.put(publicKey); bb.put(publicKey);
} }
if ( 1 == dataType ) { // 数据 if ( 1 == dataType ) { // 数据
bb.put(ByteUtil.shortToBytes((short) pOrgData.limit())); bb.put(ByteUtil.shortToBytes((short) pOrgData.limit(), ByteOrder.BIG_ENDIAN));
bb.put(pOrgData); bb.put(pOrgData);
bb.put(ByteUtil.intToBytes(idx)); bb.put(ByteUtil.intToBytes(idx));
} }
if ( 3 == dataType) { // 仅数据长度 if ( 3 == dataType) { // 仅数据长度
bb.put( ByteUtil.shortToBytes((short) (63*1024)) ); bb.put( ByteUtil.shortToBytes((short) (63*1024), ByteOrder.BIG_ENDIAN) );
bb.put( ByteUtil.intToBytes(idx)); bb.put( ByteUtil.intToBytes(idx, ByteOrder.BIG_ENDIAN));
} }
@ -6965,7 +6966,7 @@ public class SydApi4j implements SydApi {
int isLast = bb.get(); int isLast = bb.get();
byte[] dataLenArr = new byte[2]; byte[] dataLenArr = new byte[2];
bb.get(dataLenArr); bb.get(dataLenArr);
int dataLen = ByteUtil.bytesToInt(dataLenArr); int dataLen = ByteUtil.bytesToInt(dataLenArr, ByteOrder.BIG_ENDIAN);
// byte[] data = new byte[dataLen]; // byte[] data = new byte[dataLen];
// bb.get(data); // bb.get(data);
ByteBuffer slice = ByteBufferUtil.sliceAndConsume(bb, dataLen); ByteBuffer slice = ByteBufferUtil.sliceAndConsume(bb, dataLen);
@ -7058,17 +7059,17 @@ public class SydApi4j implements SydApi {
bb.put((byte) dataType); bb.put((byte) dataType);
if (dataType == 2) { // 私钥 if (dataType == 2) { // 私钥
bb.put(ByteUtil.shortToBytes((short) privateKey.length)); bb.put(ByteUtil.shortToBytes((short) privateKey.length, ByteOrder.BIG_ENDIAN));
bb.put(privateKey); bb.put(privateKey);
} }
if (dataType == 1) { // 密文块 if (dataType == 1) { // 密文块
bb.put(ByteUtil.shortToBytes((short) pCipherData.limit())); bb.put(ByteUtil.shortToBytes((short) pCipherData.limit(), ByteOrder.BIG_ENDIAN));
bb.put(pCipherData); bb.put(pCipherData);
bb.put(ByteUtil.intToBytes(idx)); bb.put(ByteUtil.intToBytes(idx, ByteOrder.BIG_ENDIAN));
} }
if (dataType == 3) { // 请求明文块 if (dataType == 3) { // 请求明文块
bb.put(ByteUtil.shortToBytes((short) (63 * 1024))); bb.put(ByteUtil.shortToBytes((short) (63 * 1024), ByteOrder.BIG_ENDIAN));
bb.put(ByteUtil.intToBytes(idx)); bb.put(ByteUtil.intToBytes(idx, ByteOrder.BIG_ENDIAN));
} }
// 填写总长度长度字段本身不包含在内 // 填写总长度长度字段本身不包含在内
@ -7095,7 +7096,7 @@ public class SydApi4j implements SydApi {
int isLast = bb.get(); int isLast = bb.get();
byte[] dataLenArr = new byte[2]; byte[] dataLenArr = new byte[2];
bb.get(dataLenArr); bb.get(dataLenArr);
int dataLen = ByteUtil.bytesToInt(dataLenArr); int dataLen = ByteUtil.bytesToInt(dataLenArr, ByteOrder.BIG_ENDIAN);
ByteBuffer slice = ByteBufferUtil.sliceAndConsume(bb, dataLen); ByteBuffer slice = ByteBufferUtil.sliceAndConsume(bb, dataLen);
return new MutiReturn7(retCode, isLast, slice); return new MutiReturn7(retCode, isLast, slice);
} else { } else {