#include <windows.h> #include <wininet.h> #pragma comment(lib, "wininet.lib") void download() { HINTERNET hInternet = InternetOpenA("HTTPFILE", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); HINTERNET hURL = InternetConnectA(hInternet, "www.gamecodi.com", 80, "", "", INTERNET_SERVICE_HTTP, 0, 0); HINTERNET hRequest = HttpOpenRequestA(hURL, "GET", "/top_logo_main.gif", NULL, NULL, NULL, 0, 0); BOOL bRet = HttpSendRequest(hRequest, NULL, 0, NULL, 0); DWORD dwContentLen = 0; DWORD dwBufLen = sizeof(dwContentLen); BOOL bRet2 = HttpQueryInfo( hRequest, HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwContentLen, &dwBufLen, 0 ); FILE* f = NULL; fopen_s(&f, "a.png", "w+b"); CHAR buf[1024*10]; DWORD dwRecvLen = 0; DWORD dwBytesRead = 0; while(dwContentLen > dwRecvLen) { BOOL bRet3 = InternetReadFile(hRequest, buf, sizeof(buf), &dwBytesRead); if(!bRet3 || dwBytesRead == 0) { DWORD dwErr = GetLastError(); dwErr = 0; break; } dwRecvLen += dwBytesRead; fwrite(buf, 1 , dwBytesRead, f); printf_s("size: %10d / %10d (%3.2f)\n", dwRecvLen, dwContentLen, float(dwRecvLen)/float(dwContentLen) * 100.0f); } fclose(f); InternetCloseHandle(hRequest); InternetCloseHandle(hURL); InternetCloseHandle(hInternet); return 0; } </wininet.h></windows.h>
출처 - http://serverdown.tistory.com/256