ZLib
サーバー (C++) では、関数を使用してバイナリ データが圧縮されます。
compress2()
クライアント (Java) に送信されます。クライアント側 (Java) では、次のコード スニペットを使用してデータを解凍する必要があります。
public static String unpack(byte[] packedBuffer) {
InflaterInputStream inStream = new InflaterInputStream(new ByteArrayInputStream( packedBuffer);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
int readByte;
try {
while((readByte = inStream.read()) != -1) {
outStream.write(readByte);
}
} catch(Exception e) {
JMDCLog.logError(" unpacking buffer of size: " + packedBuffer.length);
e.printStackTrace();
// ... the rest of the code follows
}
問題は、 while ループを読み込もうとすると、常にスローされることです。
java.util.zip.ZipException: 格納されたブロックの長さが無効です
他の考えられる原因を確認する前に、compress2 で片側を圧縮し、上記のコードを使用して反対側を解凍できるので、これを問題として排除できるか教えてください。また、誰かがここで何が間違っているのかについて手がかりを持っている場合 (私はここであまり多くのコードを提供していないことを知っていますが、プロジェクトはかなり大きいです.
ありがとう。