![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| alexander13 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 10.11.2011 Репутация: нет Всего: нет |
Всем привет, нужна консультация. Не прошу писать код. Вот какая идея: есть 2 программки: клиент и сервер, есть локальная сеть, на всех компах сети установлена программа клиент, которая берет кусок файла архивирует его по алгоритму bzip2 и выдает на сервер массив байт, который последовательно записывается в выходной файл. Интересно мнение людей которые писали уже архиваторы или сталкивались с алгоритмами сжатия данных, такое вообще реально?.
Вот прикинул как работает: 1. Сервер получает файл, который надо архивировать, он его разбивает на куски (блоки) n-ой длины (зависит от того сколько машин в сети). 2. После каждый блок помечается индексом следования и отправляется на клиентскую программку (локальная машина), которая входной файл будет архивировать. 3. на выходе клиентского приложения получаем массив байт и номер (очередность записи в финальный файл - итог архивации) и посылаем этот массив на сервер. 4. Сервер берет и обрабатывает, составляет общий массив байт (с учетом номера, который указывает следования клиентских массивов) и записывает в файл с расширением .bz2 (к примеру). Может кто, может помочь с материалом (где почитать, что почитать p.s. Всем спасибо, и да я в курсе, что такой подход будет меньше сжимать информации, за то машина (сервер) будет минимально загружаться и вообще этот топик создан, потому что мне интересно. Всем еще раз спасибо |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Тривиально, я бы сказал. Берете libbzip2, включаете ее в режиме сжатия потока, на вход заливаете ваш файл, выход выливаете в TCP сокет. На сервере все происходит в другую сторону.
Вам надо обеспечить отказоустойчивую передачу с возможностями дозалития файла? Если нет - то не заморачивайтесь разрезанием. Если да, то это уже другая задача, и bzip2 в ней самое простое |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |