メッセージの最初のバイトを使用して応答の長さを特定するための助けが必要です。
現在、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()));
}
}