@pixik

Есть ли в C++ библиотечка, которая позволяет каким то образом быстро сжимать массив бинарных данных перед передачей по какому либо интерфейсу?

Добрый день!
Передаю по последовательному порту данные, есть ли какая то возможность сжимать массив данных перед передачей (желательно, чтобы это было максимально быстро), и разжимать их на приемной стороне, чтобы вместо расширения потока нагрузить процессор?
На псевдокоде примерно следующее:
//На серверной стороне:
byte[] arr = getData();
byte[] zip_arr = zipData(arr);
sendData(zip_arr);
....
// На стороне клиента:
byte[] rec_zipped = receiveData();
byte[] unzip_arr = unzipData(rec_zipped);
...


программа пишется под linux, может есть какие то встроенные библиотеки?
Спасибо всем!
  • Вопрос задан
  • 414 просмотров
Решения вопроса 3
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
pixik: Встроенных в стандартную библиотеку нет, но есть сторонние библиотеки. Но достаточно быстро ищется в гугле, к примеру LZMA есть, APlib есть и др
Ответ написан
www.experts-exchange.com/articles/3189/In-Memory-C... - вот хороший пример на zlib. Лично использовал в одном проекте. Замечаний не было. Если по linux, то не обращать внимание на то, что тут пример под виндой. По линем просто #include <zlib.h> и при компиляции указать флаг -lz
Ответ написан
Комментировать
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
чтобы вместо расширения потока нагрузить процессор

Определенно lzma
Сорцы тутsourceforge.net/projects/sevenzip/files/LZMA%20SDK
Читать файл LzmaLib.h там в комментах все подробно описано.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы