Любая библиотека, которая поддерживает пользовательские заголовки HTTP, например libcurl , будет работать.
Вам нужно создать несколько тем. В каждом потоке установите поле Range
в заголовке запроса, чтобы указать, какую часть файла необходимо загрузить этому потоку.
А для libcurl специально, вы можете использовать опцию CURLOPT_RANGE
для частичной загрузки файла.
См. Описание формы libcurl документация .
CURLOPT_RANGE
Передайте символ * в качестве параметра, который должен содержать указанный диапазон, который вы хотите. Он должен быть в формате «X-Y», где X или Y могут быть опущены. HTTP-передачи также поддерживают несколько интервалов, разделенных запятыми, как в «X-Y, N-M». Использование такого рода нескольких интервалов приведет к тому, что HTTP-сервер отправит ответный документ по частям (используя стандартные методы разделения MIME). Для RTSP форматирование диапазона должно соответствовать RFC 2326, раздел 12.29. Для RTSP диапазоны байтов не допускаются. Вместо этого диапазоны следует указывать в форматах npt, utc или smpte.
Передайте NULL этой опции, чтобы отключить использование диапазонов.
Диапазоны работают только для HTTP, FTP, FILE (начиная с 7.18.0) и RTSP (начиная с 7.20.0).