Чтобы распаковать куски данных, я использую Boost iostreams :: zlib_decompressor. Первый идентификатор хотел бы показать вам мой декомпрессионный код с boost
boost::iostreams::filtering_istreambuf in;
in.push(boost::iostreams::zlib_decompressor());
in.push(boost::interprocess::basic_vectorstream<std::vector<char>>(chunkData));
std::vector<char> decomp;
boost::iostreams::copy(in, boost::interprocess::basic_vectorstream < std::vector < char >> (decomp));
При копировании я получаю исключение, что zlib сообщил о Z_DATA_ERROR.
Чтобы проверить, не является ли это проблемой с моими данными, я записал их в файл, а затем использовал свою собственную программу надувания (она просто использует пример со страницы zlibs о накачке, настройках по умолчанию), чтобы накачать этот файл. Я не только не получаю никаких ошибок, но моя программа возвращает правильные данные.
Использует ли boost некоторые необычные настройки для распаковки, или я неправильно использую filtering_istreambuf?
Задача ещё не решена.
Других решений пока нет …