2012-02-03 62 views

回答

1

任何支持自定義HTTP標頭的庫(例如libcurl)都可以使用。

你需要產生幾個線程。在每個線程中,請在請求標頭中設置Range字段,以指定此線程需要下載的文件的哪一部分。

而對於libcurl,您可以使用CURLOPT_RANGE選項進行部分文件下載。

參見記述形式libcurldocumentation

CURLOPT_RANGE

傳遞一個char *爲參數,它應該包含要在指定的範圍。它應該是格式「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)僅傳輸。

+1

我相信請求標頭字段是'Range'而不是'Content-Range' [ref](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2)和[另見](http://stackoverflow.com/questions/716680/difference-between-content-range-and-range-headers) – fajran 2012-02-03 13:51:53

+0

@fajran謝謝,我糾正了答案。 – 2012-02-03 14:00:18

+0

thanx傢伙。非常感激。 – 2012-02-03 18:51:05