Java распаковывает массив байтов

На сервере (C ++) двоичные данные сжимаются с использованиемZLib функция:

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 и распаковывать его на другой стороне, используя приведенный выше код, чтобы я мог устранить это как проблему? Также, если у кого-то есть возможная подсказка о том, что может быть здесь не так (я знаю, что я не предоставил здесь слишком много кода, но проекты довольно большие.

Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос