我需要一些帮助来使用消息的第一个字节来识别响应的长度。
目前使用 JMeter 发送一些 TCP 请求,但不幸的是它无法确定消息的结束,所以它挂起。
通信协议是 Google Protobufs(协议缓冲区)并且没有确定消息结束的指示器。
以下是Jmeter所拥有的。如果有人能告诉我如何在此基础上进行构建,我将不胜感激,这样我就可以使用响应的第一个字节来测量消息的长度。
JMETER - 读取方法。
public String read(InputStream is) throws ReadException {
ByteArrayOutputStream w = new ByteArrayOutputStream();
try {
byte[] buffer = new byte[127];
int x = 0;
while ((x = is.read(buffer)) > -1) {
w.write(buffer, 0, x);
if (useEolByte && (buffer[x - 1] == eolByte)) {
break;
}
}
IOUtils.closeQuietly(w); // For completeness
final String hexString = JOrphanUtils.baToHexString(w.toByteArray());
if(log.isDebugEnabled()) {
log.debug("Read: " + w.size() + "\n" + hexString);
}
return hexString;
} catch (IOException e) {
throw new ReadException("", e, JOrphanUtils.baToHexString(w.toByteArray()));
}
}