저는 C++ 응용 프로그램을 작성 중이며 동시에 HTTP GET 요청을 통해 여러 데이터 파일을 요청하고 싶습니다. 어디에서 시작해야합니까 (크로스 플랫폼이어야 함).C++ 동시 GET 요청
- 응용 프로그램 실행
- 을 동시에 { "http://host/file3.txt"을 "http://host/file1.txt", "http://host/file2.txt"}
- 요청 모든 URL을 URL 목록을 작성하고 (디스크 쓰기를 원하지 않는 변수에 내용을로드). 각 파일에는 약 10KB의 데이터가 있습니다.
어떤 라이브러리를 사용 하시겠습니까? libcurl? 컬프? 부스트 asio? 모든 파일을 동시에 요청하려면 다중 스레드 스레딩이 필요합니까? 더 쉬운 방법이 있습니까?
편집 : 약 1000 건의 요청을 동시에 요청해야합니다. 대부분이 작업을 한 번에 100 개씩 수행하고 하나의 연결이 완료되면 더 많은 연결을 생성합니다.
왜 파일을 병렬로 요청해야합니까? URL이 매우 큰 경우에만 10kB가 크면 눈에 띄는 지연이 발생하지 않습니다. 동시성은 의심스러운 이득을 위해 구현을 훨씬 더 복잡하게 만듭니다. – lothar
각 get을 수행하는 데 100ms의 대기 시간이 있고 10 개의 파일이있는 경우 병렬 도달은 1000ms가 아닌 100ms로 완료됩니다. –
@lothar 예, URL 목록은 참으로 길었습니다 (10-1000 번). 설명하기 쉽도록 설명에 3 개의 URL을 사용했습니다. GET 요청은 대기 시간이 길지만 일단 스트리밍을 시작하면 초고속 (대기 시간이 문제)이므로 동시성이 필요합니다. –