//* byte[1] keepData 保留区
buf.skipBytes(1);
//* byte[3] contentLength 内容大小
buf.skipBytes(3);//.readUnsignedMedium()
//
RequestSocketBlock req = new RequestSocketBlock();
req.setVersion(version);
req.setRequestID(requestID);
//* --------------------------------------------------------bytes =14
//* byte[2] servicesName-(attr-index) 远程服务名
req.setServiceName(buf.readShort());
//* byte[2] servicesGroup-(attr-index) 远程服务分组
req.setServiceGroup(buf.readShort());
//* byte[2] servicesVersion-(attr-index) 远程服务版本
req.setServiceVersion(buf.readShort());
//* byte[2] servicesMethod-(attr-index) 远程服务方法名
req.setTargetMethod(buf.readShort());
//* byte[2] serializeType-(attr-index) 序列化策略
req.setSerializeType(buf.readShort());
//* byte[4] clientTimeout 远程客户端超时时间
req.setClientTimeout(buf.readInt());
//* --------------------------------------------------------bytes =1 ~ 1021
//* byte[1] paramCount 参数总数
byte paramCount = buf.readByte();
for (int i = 0; i < paramCount; i++) {
//* byte[4] ptype-0-(attr-index,attr-index) 参数类型
int mergeData = buf.readInt();
req.addParameter(mergeData);
}
//* --------------------------------------------------------bytes =1 ~ 1021
//* byte[1] optionCount 选项参数总数
byte optionCount = buf.readByte();
for (int i = 0; i < optionCount; i++) {
//* byte[4] attr-0-(attr-index,attr-index) 选项参数
int mergeData = buf.readInt();
req.addOption(mergeData);
}
//* --------------------------------------------------------bytes =6 ~ 8192
//* byte[2] attrPool-size (Max = 2047) 池大小
short attrPoolSize = buf.readShort();
for (int i = 0; i < attrPoolSize; i++) {
//* byte[4] att-length 属性1大小
int length = buf.readInt();
req.addPoolData(length);
}
//* --------------------------------------------------------bytes =n
//* dataBody 数据内容
req.fillFrom(buf.readBytes(req.getPoolSize()));
return req;
}