myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> ADCGET-ADCSND и размер файла

Теги
Нет тегов для показа
sweeny
сообщение 22.11.2009, 5:00
Сообщение #1


Абсолютный новичок


Группа: Пользователи
Сообщений: 3
Регистрация: 22.11.2009
Пользователь №: 5 134
Спасибо сказали: 0 раз




День добрый.

Помогите пожалуйста разобраться в следующем при получении файл-листа от пользователя.

В режиме Клиент-Клиент, я отправляю

$Supports MiniSlots XmlBZList ADCGet TTHL TTHF |
$ADCGET file files.xml.bz2 0 -1|

на что получаю
$ADCSND file files.xml.bz2 0 3398|

т.е. файл приходит действительно размером 3398, ужатый в bz2

Теперь краткая справка:
Цитата
ZLIG . This feature indicates support for compressing the stream of data sent by $ADCGET with the ZLib library. To enable compression, ZL1 is used as a parameter to $ADCGET and is also echoed back with $ADCSND.


Модифицируем обмен командами с клиентом
$Supports MiniSlots XmlBZList ADCGet TTHL TTHF ZLIG |
$ADCGET file files.xml.bz2 0 -1 ZL1|

и получаем
$ADCSND file files.xml.bz2 0 3398 ZL1|

так вот теперь ужатый bz2 дополнительно ужимается zlib'ом. Естественно меняется и заголовок файла и его конечный размер, но какого тогда ADCSND пишет 3398 байт? Вот тут я и перестаю понимать. Ну, допустим, что 3398 - это размер bz2 и клиент ужимает стрим при отправке, т.е. не может в заголовке указать правильный размер.

1. Каким образом я могу узнать размер файла, который ко мне идёт?
2. Зачем в тех же ApexDC, StrongDC стрим ужимается zlib'ом по умолчанию? Зачем ужимать то, что и так уже ужато? Зачем нужени этот ZLIG ?


Go to the top of the page
+Quote Post
Setuper
сообщение 22.11.2009, 17:11
Сообщение #2


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Не все файлы можно сжать. Например, практически никакие avi файлы не подлежат сжатию.
Вообще что такое сжатие? Это поиск одинаковых последовательностей символов. Если найдены две одинаковые последовательности, то отсылаться будет только первая из этих последовательностей, а на месте второй будет стоять метка на первую.

Библиотека zlib не сжимает то, что уже нельзя сжать.
Go to the top of the page
+Quote Post
sweeny
сообщение 23.11.2009, 10:45
Сообщение #3


Абсолютный новичок


Группа: Пользователи
Сообщений: 3
Регистрация: 22.11.2009
Пользователь №: 5 134
Спасибо сказали: 0 раз




Про принципы архивирования ориентируюсь.

Не соглашусь с тем, что zlib не сжимает то, что уже нельзя сжать. Пытается сжимать. По крайней мере при получении файл-листа в архиве .bz2, zlib прописывает как минимум 7 байт в начале файла, начиная с 78 9С (это его заголовок), затем видно, что идет заголовок bz2. А также прописывает свои байты в теле кода. Особо не разбирался, но то что вмешивается - это однозначно.

Вообще, смысл упаковки стрима zlib'oм безусловно имеет право на жизнь при передаче файлов. Но я не понимаю смысла упаковки заведомо упакованного файл-листа. А этим, как я уже сказал, страдают и StrongDC, и ApexDC.

И самое главное, мне нужна помощь в том, как узнать, сколько байт из сокета я должен забрать, т.к. размер файла указанного в $ADCSND заведомо меньше того размера, который придет при ужимании стрима библиотекой zlib.

Хелп!
Go to the top of the page
+Quote Post
Setuper
сообщение 23.11.2009, 13:19
Сообщение #4


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Нет, не верно. Алгоритм сжатия LZ77 библиотеки zlib устроен так, что он не будет сжимать файл, если размер всех "метадат", которые этот алгоритм вставляет в начале каждого сжатого сегмента будет превышать размер сжатия. То есть алгоритм LZ77 не работает в ущерб big_smile.gif

Не знаю, что у тебя там за глюки или баги, однако, размер должен совпадать, иначе параметр теряет свой смысл.
Go to the top of the page
+Quote Post
sweeny
сообщение 23.11.2009, 13:27
Сообщение #5


Абсолютный новичок


Группа: Пользователи
Сообщений: 3
Регистрация: 22.11.2009
Пользователь №: 5 134
Спасибо сказали: 0 раз




Да откуда у меня баги? Я всего лишь прошу клиента прислать мне файл-лист. В зависимости от запроса приходит ответ:

либо так: $ADCSND file files.xml.bz2 0 3398| .....файл
либо так: $ADCSND file files.xml.bz2 0 3398 ZL1| .... файл

в первом случае идет чистый красивый bz2 размером 3398
во втором bz2, ужатый zlib-ом, размером <фиг знает каким>

:(
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Скрипт загрузки файла
1 FreeNas 6 460 21.7.2015, 10:58 Посл. сообщение: HackFresse
No New Posts Сохранение и загрузка таблиц в файл (из файла)
7 daslex 10 940 22.11.2013, 12:28 Посл. сообщение: MIKHAIL
No New Posts Скачивание файла большого объема с нескольких источников
5 nail 10 796 27.7.2012, 16:27 Посл. сообщение: nail
No New Posts $ADCSND узнать точный размер передаваемого сжатого сегмента
6 kadet.89 11 485 29.5.2012, 0:20 Посл. сообщение: Alexey
No New Posts Переход с файла *.tbl в базу данных SQL
SQL
0 kks 4 850 29.3.2011, 14:28 Посл. сообщение: kks
No New Posts Парсинг файла списка от PtokaX
5 dimajak 10 573 24.12.2010, 14:14 Посл. сообщение: dimajak
No New Posts ВАЖНО: Topic has attachmentsРусский первод .lng файла
Обновил
4 Maximum 12 645 26.10.2010, 15:55 Посл. сообщение: Maximum
Closed Размер шары хаба
2 dimajak 7 350 18.5.2010, 4:05 Посл. сообщение: Accelerator
No New Posts Запись файла
9 Net_Strannik 12 783 30.10.2009, 9:46 Посл. сообщение: Net_Strannik
No New Posts Topic has attachmentsОт: Русский первод .lng файла
От темы с ID: 2529
4 Invisible 7 722 6.10.2009, 16:06 Посл. сообщение: Invisible
No New Posts Как продолжить скачку недокаченного файла?
dcmtp
4 PaN 9 653 12.8.2009, 19:35 Посл. сообщение: Invisible
No New Posts От: Отправка содержимого файла в ПМ
От темы с ID: 2024
0 Wariner 4 750 31.5.2009, 20:39 Посл. сообщение: Wariner
Closed Отправка содержимого файла в ПМ
1 2009the 6 046 31.5.2009, 20:38 Посл. сообщение: Setuper
Closed Логирование Гл. Чата И Генерирование Страницы И Файла .txt С Логом
1 Accelerator 6 301 12.3.2009, 17:40 Посл. сообщение: Setuper

 



RSS Сейчас: 23.12.2024, 13:56