Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Архивация (сжатие) файлов на компах в сети. алгоритм сжатия bzip2 на сторонних комп. 
:(
    Опции темы
alexander13
Дата 10.11.2011, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 10.11.2011

Репутация: нет
Всего: нет



Всем привет, нужна консультация. Не прошу писать код. Вот какая идея: есть 2 программки: клиент и сервер, есть локальная сеть, на всех компах сети установлена программа клиент, которая берет кусок файла архивирует его по алгоритму bzip2 и выдает на сервер массив байт, который последовательно записывается в выходной файл. Интересно мнение людей которые писали уже архиваторы или сталкивались с алгоритмами сжатия данных, такое вообще реально?. 
Вот прикинул как работает:
1. Сервер получает файл, который надо архивировать, он его разбивает на куски (блоки) n-ой длины (зависит от того сколько машин в сети).
2. После каждый блок помечается индексом следования и отправляется на клиентскую программку (локальная машина), которая входной файл будет архивировать.
3. на выходе клиентского приложения получаем массив байт и номер (очередность записи в финальный файл - итог архивации) и посылаем этот массив на сервер.
4. Сервер берет и обрабатывает, составляет общий массив байт (с учетом номера, который указывает следования клиентских массивов) и записывает в файл с расширением .bz2 (к примеру).
 
Может кто, может помочь с материалом (где почитать, что почитать smile)).  Если все же это возможно и то что я написал выше приемлемо, то вопрос как разбить большие файлы (к примеру пару гигов) на более мелкие ))))?

p.s. Всем спасибо, и да я в курсе, что такой подход будет меньше сжимать информации, за то машина (сервер) будет минимально загружаться и вообще этот топик создан, потому что мне интересно. Всем еще раз спасибо smile
PM MAIL   Вверх
xvr
Дата 10.11.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Цитата(alexander13 @  10.11.2011,  01:09 Найти цитируемый пост)
Интересно мнение людей которые писали уже архиваторы или сталкивались с алгоритмами сжатия данных, такое вообще реально?. 

Тривиально, я бы сказал. Берете libbzip2, включаете ее в режиме сжатия потока, на вход заливаете ваш файл, выход выливаете в TCP сокет. На сервере все происходит в другую сторону.

Цитата(alexander13 @  10.11.2011,  01:09 Найти цитируемый пост)
вопрос как разбить большие файлы (к примеру пару гигов) на более мелкие ))))?

Вам надо обеспечить отказоустойчивую передачу с возможностями дозалития файла? Если нет - то не заморачивайтесь разрезанием. Если да, то это уже другая задача, и bzip2 в ней самое простое  smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.