티스토리 뷰

일반 IT 개발

WININET 관련 사항 정리

삐니찌니 2010.05.20 11:36

WININET이란


Microsoft Win32 인터넷 (WinInet) 응용을 프로그래밍 인터페이스 (API) Win32 개발자에게 익숙한 고급 인터페이스로 프로토콜을 추상화해 독립 실행형 클라이언트 응용 프로그램에 쉽게 액세스할 Gopher, FTP (파일 전송 프로토콜) 및 HTTP (하이퍼텍스트 전송 프로토콜) 같은 표준 인터넷 프로토콜 제공합니다. 






INET을 활용하여 웹페이지 긁어오기샘플 함수


  1. int GetHttpFile(char *buff, DWORD max_buff_size, char *url)  
  2. {  
  3.     HINTERNET hInternet;  
  4.     HINTERNET hFile;  
  5.     DWORD ReadSize;  
  6.     BOOL bResult;  
  7.     int buff_cnt=0;  
  8.   
  9.     /* WININET 초기화 */  
  10.     hInternet = InternetOpen(  
  11.     "WININET Sample Program",  
  12.     INTERNET_OPEN_TYPE_PRECONFIG,  
  13.     NULL,  
  14.     NULL,  
  15.     0);  
  16.   
  17.     /* URL 열기 */  
  18.     hFile = InternetOpenUrl(  
  19.     hInternet,  
  20.     url,  
  21.     NULL,  
  22.     0,  
  23.     INTERNET_FLAG_RELOAD,  
  24.     0);  
  25.   
  26.     /* 4096 바이트씩 읽어옴 */  
  27.     for(;;)  
  28.     {  
  29.     ReadSize = 4096;  
  30.   
  31.     if ((ReadSize+buff_cnt)>max_buff_size) ReadSize   
  32.                                       = max_buff_size - buff_cnt;  
  33.   
  34.     bResult = InternetReadFile(  
  35.     hFile,  
  36.     &buff[buff_cnt],  
  37.     ReadSize,  
  38.     &ReadSize);  
  39.   
  40.     buff_cnt += ReadSize;  
  41.   
  42.     /* 그만 읽을지 확인? */  
  43.     if(bResult && (ReadSize == 0)) break;  
  44.     }  
  45.   
  46.     /* 끝 */  
  47.     InternetCloseHandle(hFile);  
  48.     InternetCloseHandle(hInternet);  
  49.     return buff_cnt;  
  50. }  

출처 : http://kurapa.com/content-a821

저작자 표시
신고
댓글
댓글쓰기 폼