2011-03-12 6 views
3

Windows에서 C++에서 사용할 수있는 여러 개의 동시 HTTP 연결 (단일 스레드 기본 설정)을 처리 할 라이브러리를 찾고 있으므로 Win32 API 기반이 될 수 있습니다. 이는 요청 목록을 처리해야하지만 목록이 완료 될 때까지 항상 4 개를 실행해야하는 클라이언트 응용 프로그램 용입니다.여러 HTTP 연결을 처리하는 C++ 라이브러리

지금까지 내가 찾은 가장 적절한 것으로 보이는 cURL (멀티 인터페이스)을 시도했지만 문제는 200 개의 요청 대기열이있을 수 있지만 그 중 4 개만 실행해야한다는 것입니다. 시각. 하나의 요청이 2 초가 걸릴 수 있고 모든 핸들을 기다려야하고 한 블록에 모든 요청의 결과를 수신해야하는 경우 문제가됩니다. 누구든지이 방법을 잘 알고 있다면 매우 유용 할 것입니다.

WinHTTP를 사용하여 직접 롤업을 시도했지만 WinHTTP가 수행하지 않는 데이터에 대해 콜백을 사용하고 단일 스레드에 있어야하므로 이상적으로 요청을 조정해야합니다.

내 모든 문제를 해결할 수있는 최선의 방법은 ASIHTTPRequest이지만, 불행히도 Mac OSX에만 해당됩니다.

덕분에, J

답변

4

당신은 boost.asio 봤어? http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio.html

그것의 잘 확장을 의미하고 http 서버 예제가 있습니다 http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/examples.html

+0

감사합니다. boost.asio를보고 libcurl과 동일한 문제가있는 것처럼 보였습니다. 그것은 하나의 스레드에서 실행되는 상수 4 요청을 유지할 수 있습니까? 즉, 모든 요청이 완료 될 때까지 기다리지 않고도 완료되면 알림을받을 수 있습니까? – JWood

+0

@JWood, 많은 서버 프로그래밍을하지 않았습니다. (장치와의 단일 연결을 설정하기 위해 asio를 사용했습니다) 죄송합니다. – Tom

+0

제가 작업하고있는 서버가 아니지만 문제는 아닙니다. 클라이언트입니다. – JWood

0

하는 Asio은 훌륭한 라이브러리입니다하지만 일반의는 HTTP 예는 단지입니다.
Boost & HTTP 프로토콜을 지원하는 Asio 위에 구축 된 두 개의 라이브러리가 있습니다. cpp-netlibPion Network Library이지만 AFAIK는 원하는 것을 직접 지원하지 않습니다.
libcurl 사용에 익숙하다면 콜백과 함께 "쉬운"인터페이스를 사용하고 요청 큐를 직접 구현하는 것이 매우 쉽습니다.

0

libcurl의 멀티 인터페이스는 사용자가 원하는 것을 정확하게 지원합니다.

관련 문제