Отсылаю в сокет примерно такое:
$ADCGET file TTH/PPUROLR2WSYTGPLCM3KV4V6LJC36SCTFQJFDJKA 0 1000 ZL1|
Получаю ответ:
$ADCSND file TTH/PPUROLR2WSYTGPLCM3KV4V6LJC36SCTFQJFDJKA 0 1000 ZL1|
И начинаю считывать эти 1000 байт. Но отсылатель со своей стороны сжимает 1000 байт и выходит меньше.
Таким образом считав ~900 байт всё зависает в ожидании последних 100 байт.
Вопрос прост, как узнать сколько байт придет? Простым таймаутом проблему не решить т.к. бывают подзависания да и нехорошо ступорить программу.
В http://mydc.ru/topic2702.html ответа так и не нашли.
Пока точно не знаю, но похоже надо использовать поточное разжатие на сокете, тогда на выходе уже будет нужное количество байт.
Внимательно смотри исходники клиента
Не хочу отдельно тему создавать для простого вопроса
$ADCGET file TTH/PPUROLR2WSYTGPLCM3KV4V6LJC36SCTFQJFDJKA 1024 2048 ZL1|
первое число - номер байта с которого нужно передавать файл, а второе? номер последнего байта или количество байт от первого числа?