블로그 내에서 비슷한 글 링크 : http://www.npteam.net/447
WinInet이 서버당 연결 수를 제한한다. 따라서 HttpSendRequestInternetOpenURL 의 함수를 호출할 경우에는 윈도우에 설정된 레지스트리 기본값이 2개로 되어 있다.
 
REGEDIT4
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
 
"MaxConnectionsPer1_0Server"= dword:00000064
"MaxConnectionsPerServer"= dword:00000064
MaxConnectionsPerServer REG_DWORD(기본값 2)
단일 HTTP 1.1 서버에 대한 동시 요청 수를 설정합니다.

MaxConnectionsPer1_0Server REG_DWORD(기본값 4)
단일 HTTP 1.0 서버에 대한 동시 요청 수를 설정합니다.

#include "AFXINET.H"

CInternetSession* pSession = NULL;
CStdioFile* pFile = NULL;
TCHAR szError[1024] = {0};

TRY
{
  pSession = new CInternetSession;
  pFile = pSession->OpenURL( "http://www.devpia.com" );
}
CATCH( CInternetException, pEx )
{
  pEx->GetErrorMessage( szError, 1024 );
}

END_CATCH

if( pFile != NULL )
{
  //여기서 웹페이지 내용을 가지고 처리
  //HTTP를 호출했을 시
  CHttpFile* pHttpFile = (CHttpFile*)pFile;
 
  /*원하는 코드를 실행한다.*/
  // pHttpFile->ReadString(CString DataType);
 
  delete pHttpFile;
  pHttpFile = NULL;
  pFile = NULL;
}

if( pSession != NULL )
{
  //pSession->Close(); //CInternetSession 소멸자가 알아서 호출함
  delete pSession;
  pSession = NULL;
}

/*
  파라미터를 GET 방식으로 넘기시려면 ...

  CInternetSession::OpenURL()로 접속할 URL과 파라미터 넘겨주면,
  CStdioFile 포인터를 넘겨 주거든요. 그냥 파일 처럼 처리하시면 되겠네요.

  OpenURL("http://localhost/test.asp?name=하나")
  이런 식으로 처리하실 수 있습니다


  파라미터를 POST 방식으로 넘기시려면 ...
  CInternetSession::GetHttpConnection()으로 HTTP 커넥션 맺어 주시고,
  CHttpConnection::OpenRequest()로 URL에 접속해서,
  CHttpFile::AddRequestHeaders()로 헤더와 POST 정보를 추가해서 ...
  CHttpFile::SendRequest()로 데이터 날려 주시면 됩니다.
*/

2006/05/13 23:31 2006/05/13 23:31

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요

  1. 너무좋아 2009/11/06 14:06 고유주소 고치기 답하기

    예제 잘 봤습니다.