Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2008, 17:57   #1
Makarov
Форумчанин
 
Аватар для Makarov
 
Регистрация: 03.01.2008
Сообщений: 102
По умолчанию сжатие при передачи данных

Скажите пожалуйста можно сделать так: со стороны программы клиенты отправленное сообщение (ну в моем случае картинка) сжималось, а со стороны клиента при получении распаковывалось? Если да то скажите пожалуйста какие алгоритмы сжатия я мог бы использовать! Заранее спасибо!
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Makarov вне форума Ответить с цитированием
Старый 17.01.2008, 18:01   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

все зависит от типа данных на самом деле. Алгоритмов сжатия данных (в том числе адаптированных для передачи в сети) полно.
Есть 2 основных подхода к этому:
сжимается весь кусок данных (файл к примеру) и затем передается пакетами (тут уш согласно MTU)
сжимаем каждый пакет в отдельности.
Первый вариант для вас будет проще, так как для не потребуется большого кол- ва специализированных знаний (используется любой из доступных модулей работы с архивами)
Второй более действенный но и сложнее в исполнении, так как использовать INdy в этом случае тоже можно, но сложнее, самым корректным будет ручное формирование пакета.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.01.2008, 18:16   #3
Makarov
Форумчанин
 
Аватар для Makarov
 
Регистрация: 03.01.2008
Сообщений: 102
По умолчанию

Я буду передавать картинку. Для сжатия изображения подходят оба метода?
И я использую TServerSoket, TClientSoket.
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Makarov вне форума Ответить с цитированием
Старый 17.01.2008, 20:31   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Зжимайте данные zlib Стандартная библиотека вполне подойдет + простота.
BOBAH13 вне форума Ответить с цитированием
Старый 17.01.2008, 21:30   #5
Makarov
Форумчанин
 
Аватар для Makarov
 
Регистрация: 03.01.2008
Сообщений: 102
По умолчанию

Не подскажите где найти подробное описание работы с этой библиотекой?
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Makarov вне форума Ответить с цитированием
Старый 17.01.2008, 21:41   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Точто сказать не могу... да там и ничего сложного нет, в ней две функии для зжатия и разжатия. Параметры у них простые входной буфер и его размер и выходные размер и буфер. Точное название функций не помню модуль в директиве объявите zlib.pas.

Вот открыл свой кодик:

Код:
var
  InpBuf: Pointer; // входящий буфер
  InpBytes: DWORD; // размер входящего буфера
  OutBuf: Pointer; // исходных буфер
  OutBytes: DWORD; // размер исходного буфера
...
// сжатие
zlib.CompressBuf(InpBuf, InpBytes, OutBuf, OutBytes);
// расжатие
zlib.DecompressBuf(InpBuf, InpBytes, 5, OutBuf, OutBytes);
// почему параметр = 5, да и сам толком не пойму что от данного параметра зависит :)

Последний раз редактировалось BOBAH13; 17.01.2008 в 21:46.
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размера - Сжатие BMP в TImage Air Помощь студентам 2 02.03.2008 17:00
Сжатие строК! prizrak1390 Общие вопросы Delphi 16 02.01.2008 17:15
Проверка на сжатие vitalik007 Общие вопросы Delphi 3 20.08.2007 10:53