2013-07-25 9 views
0

재개 가능한 다운로드를 지원하기 위해 InternetSetFilePointerInternetReadFile의 조합을 사용하고 있습니다. 그래서 파일을 다운로드하기 시작할 때 이미 파일의 일부가 있는지 확인하고, 가지고있는 파일의 크기를 사용하여 InternetSetFilePointer으로 호출 한 다음 읽기 시작합니다. 이것은 작동하지만 ... 내 관찰 결과는 다음과 같습니다.WinInet이 다시 시작하지 않고도 파일 다운로드를 재개 할 수 있습니까?

파일의 90 %를 다운로드하고이를 수행하는 데 2 ​​분이 걸린 경우, 다시 시작하면 InternetReadFile의 첫 번째 호출은 약 2 분이 걸립니다. 나는 뒷부분에서 파일을 처음부터 다운로드하고, 내가 InternetSetFilePointer에 준 지점까지 모든 것을 버린 다음 "다음"데이터를 반환한다고 결론 내릴 수 있습니다.

그래서 질문은 다음과 같습니다

1) WinInet이이 InternetSetFilePointer을 "시뮬레이션"않거나 정말 서버에 그 정보를 제공 하는가?

2) HTTP 서버가 그렇게 지원한다고 가정 할 때 WinInet이 원하는 검색 지점으로 건너 뛸 수있는 방법이 있습니까?

내가 다운로드하는 서버는 Amazon S3 서버이며 99.9 %는 이력서를 지원합니다.

답변

0

이 작업을 수행하는 적절한 방법은 결국 일부 확장 검색에서 설정하고, 여기에 대한 좋은 기사에 대한 링크입니다 :

http://www.clevercomponents.com/articles/article015/resuming.asp 기본적으로

이 올바른 HTTP의 재개하려면, 당신은 사용할 필요가 서버가 요청에 대한 자원을 정확하게 나눌 수 있도록 "범위"HTTP 헤더.