$GetZBlock
Материал из MyDC's Wiki
Синтаксис
$GetZBlock {число} {число_байт} {имя_файла}|
Направление команды
- Клиент ---> Клиент
Описание
- Данная команда является дополнением к протоколу. На поддержку данной команды указывает характеристика GetZBlock в команде $Supports.
- Параметр {число} начинается с 0 (именно с 0, в отличии от команды $Get, в которой данный параметр начинается с 1) и обозначает начальную точку загрузки файла.
- {число_байт} - это число отправляемых байт (или -1 для неизвестного или целого файла).
- {имя_файла} - очевидно, что это имя файла.
- После этого второй клиент отвечает командой "$Sending {байты}|{сжатие}", если отправка прошла успешно или командой "$Failed {описание_ошибки}|" в противном случае.
- Если всё в порядке, то данные будут отправляться до тех пор пока не отошлёться вся не сжатая длина файла.
- {байты} - указывает сколько будет извлечено отосланных байт без сжатия, потому как отсылающий клиент не знает на сколько хорошо был сжат файл. Одна отсылка туда и обратно оптимизирует механизм передачи файла.
Сжатие
- Для сжатия используется библиотека ZLib (v 1.1.4 в DC++ начиная с версии 0.21), использующая динамическое сжатие. Уровень сжатия может изменяться для того чтобы снизить нагрузку на процессор или в случае если файл не сжимается. Уровень сжатия регулируется с помощью хеш-функции adler32.
Поддержка
Команда $GetZBlock устарела, но согласно DC++ 0.696 её поддержка ещё существует. Новая реализация этой команды используется в команде $ADCGET с параметром ZL1.
Не поддерживается клиентом FlylinkDC++ в версиях ветки r5xx, выпущенных после 12 ноября 2013 года.[1]