- Windows Internet API
- ÀÎÅÍ³Ý ¿¬°áµÇ¾ú´ÂÁö ¾Ë¾Æ³»±â
- FTP
- HTTP
- ¸µÅ©
1 Windows Internet API
Windows Internet API(WinINet API¶ó°íµµ ºÒ¸²)´Â HTTP, FTP, gopher ÇÁ·ÎÅäÄÝÀ» Áö¿øÇÏ´Â ÇÏÀÌ ·¹º§ÀÇ ³×Æ®¿öÅ© APIµéÀÌ´Ù. µ¿±â¿Í ºñµ¿±â ¸ðµå µÑ ´Ù¸¦ Áö¿øÇϸç, ¼¹ö¸¦ ¸¸µå´Â µ¥´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. ½ÇÁ¦ Äڵ尡 µé¾îÀÖ´Â wininet.dllÀº winsock32.dll°ú´Â ¹«°üÇÏ´Ù. HTTP ¹®¼¸¦ ÀÚµ¿À¸·Î ij½ÌÇØÁÖ´Â ±â´ÉÀ̳ª, ·¹Áö½ºÆ®¸®¿¡ ÀÖ´Â ÇÁ¶ô½Ã ¼¹ö ¼³Á¤À» ÀÚµ¿À¸·Î ÀÌ¿ëÇÏ´Â µî »ó´çÈ÷ Æí¸®ÇÏ´Ù.
2 ÀÎÅÍ³Ý ¿¬°áµÇ¾ú´ÂÁö ¾Ë¾Æ³»±â
ÇØ´çÇÏ´Â ÄÄÇ»ÅͰ¡ ÀÎÅͳݿ¡ ¿¬°áµÇ¾îÀÖ´ÂÁöÀÇ ¿©ºÎ¸¦ ¾Ë·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
BOOL IsConnectInternet()
{
DWORD dwFlags;
BOOL bChkInternet = InternetGetConnectedState(&dwFlags,0);
if(!bChkInternet) return FALSE;
return TRUE;
} InternetGetConnectedState ÇÔ¼ö´Â ÀÎÅͳݿ¡ ¿¬°áµÇ¾î ÀÖ´Â °æ¿ì¿¡¸¸ TRUE¸¦ ¸®ÅÏÇÑ´Ù. À§ÀÇ ¿¹Á¦¿¡¼´Â À̸¦ ÀÌ¿ëÇϰí ÀÖ´Ù. ÇÏÁö¸¸ Á¦´ë·Î ÇÏ·Á¸é dwFlags °ªÀ» Ȱ¿ëÇØ¾ßÇÑ´Ù.
| Ç÷¡±×°ª | ÀÇ¹Ì |
| INTERNET_CONNECTION_CONFIGURED | Local system has a valid connection to the Internet, but it might or might not be currently connected. |
| INTERNET_CONNECTION_LAN | Local system uses a local area network to connect to the Internet. |
| INTERNET_CONNECTION_MODEM | Local system uses a modem to connect to the Internet. |
| INTERNET_CONNECTION_MODEM_BUSY | No longer used. |
| INTERNET_CONNECTION_OFFLINE | Local system is in offline mode. |
| INTERNET_CONNECTION_PROXY | Local system uses a proxy server to connect to the Internet. |
| INTERNET_RAS_INSTALLED | Local system has RAS installed. |
3 FTP
ÀÓÀÇÀÇ ¼¹ö¿¡ ÆÄÀÏÀ» ¾÷·ÎµåÇÏ´Â »ùÇÃ
LPCSTR pHost = "some.where.ftp.listen";
LPCSTR pUsername = "tester";
LPCSTR pPassword = "*******";
LPCSTR pProxy = "ProxyServerName";
HINTERNET hInternet = ::InternetOpen(
"Microsoft Internet Explorer",
INTERNET_OPEN_TYPE_PROXY,
pProxy,
NULL,
INTERNET_FLAG_ASYNC);
HINTERNET hFTPSession = ::InternetConnect(
hInternet,
pHost,
INTERNET_INVALID_PORT_NUMBER,
pUsername,
pPassword,
INTERNET_SERVICE_FTP,
0,
(DWORD)0);
BOOL bSuccess = ::FtpPutFile(
hFTPSession,
"LocalName.dat",
"RemoteName.dat",
FTP_TRANSFER_TYPE_BINARY,
0);
::InternetCloseHandle(hFTPSession);
::InternetCloseHandle(hInternet);
4 HTTP
http://www.somewhere.com/some_dir/somefile.html ÆÄÀÏ ´Ù¿î·Îµå¹Þ±â.
HINTERNET hINet, hConnection, hData;
CHAR buffer[2048] ;
CString m_strContents ;
DWORD dwRead, dwFlags, dwStatus ;
hINet = InternetOpen(
"InetURL/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (!hINet)
{
AfxMessageBox("InternetOpen Failed");
return;
}
try
{
hConnection = InternetConnect(
hINet, "www.somewhere.com", 80,
" "," ", INTERNET_SERVICE_HTTP, 0, 0);
if (!hConnection)
{
InternetCloseHandle(hINet);
return;
}
// Get data
hData = HttpOpenRequest(
hConnection, "GET", "/some_dir/somefile.html",
NULL, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION, 0);
if (!hData)
{
InternetCloseHandle(hConnection);
InternetCloseHandle(hINet);
return;
}
HttpSendRequest(hData, NULL, 0, NULL, 0);
while (InternetReadFile(hData, buffer, 255, &dwRead))
{
if (dwRead == 0) return;
buffer[dwRead] = 0;
m_strContents += buffer;
}
}
catch(CInternetException* e)
{
e->ReportError();
e->Delete();
}
InternetCloseHandle(hConnection);
InternetCloseHandle(hINet);
InternetCloseHandle(hData); ´Ü¼øÈ÷ ´Ù¿î·Îµå°¡ ¸ñÀûÀ̶ó¸é, URLDownloadToFile ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ³ªÀ» µí ÇÏ´Ù. ÀÌ¿¡ °üÇÑ »çÇ×Àº RetrievingFileUsingHttp ÆäÀÌÁö¸¦ Âü°í.
5 ¸µÅ©
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)