|
¹æ¸í·Ï
ÁÖÀú¸®ÁÖÀú¸®
|

 |
 |
|
 |
|
View Articles |
|
 |
[homepage]´Ô²²¼ ³²±â½Å ±Û |
(2003-02-08 19:55:02, Hit : 12753) |
¾È³çÇϼ¼¿ä!
À¥ ÆÄÀÏ ´Ù¿î ·Îµå ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ º¸µµ·Ï ÇսôÙ.
À½ ¿©·¯°¡Áö ¹æ¹ýÀÌ ÀÖÁö¸¸, ¿À´ÃÀº WinINet À» ÀÌ¿ëÇÏ°Ú½À´Ï´Ù.
WinSock ÀÌ Àú¼öÁØ ÇÔ¼ö·Î ÀÌ·ç¾î Á³´Ù¸é
WinInet À̶ó´Â °í¼öÁØÀÇ ¶óÀ̺귯¸®°¡ ÀÖ½À´Ï´Ù.
WinInet Àº Http, FTP, Gopher ÇÁ·ÎÅäÄÝ ±îÁö ÀÌ¹Ì ±¸Çö µÇ¾î ÀÖ½À´Ï´Ù.
WinINet Àº MS¿¡¼ Á¦°øÇÏ´Â Windows API ÀÔ´Ï´Ù.
ÀÌ°É µ¨ÆÄÀÌ¿¡¼ »ç¿ëÇϱâ ÆíÇϵµ·Ï WinInet.pas ÆÄÀÏ ÇüÅ·ΠÁö¿øÇØ ÁÖ°í ÀÖ½À´Ï´Ù.
À½ Á¤¸» Ä£ÀýÇÑ º¼·£µå ³×¿ä.
WinINet ¿¡ °üÇÑ ´õ ÀÚ¼¼ÇÑ °Å´Â MSDNÀ» ÂüÁ¶ÇϽðí,
³ªÁß¿¡ WinINet¿¡ °üÇÑ ¼³¸íÀº µû·Î °Á¸¦ ¸¶·ÃÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
ÀÏ´Ü ¹Ù·Î ÄÚµùÀ» Çغ¼±î¿ä
uses Àý¿¡ WinInet À» Ãß°¡Çϼ¼¿ä.
±×¸®°í
¾Æ·¡ ÇÔ¼ö¸¦ Çϳª ¸¸µé¾î º¼±î¿ä
function InternetFileDown(AURL: string; ALocalFile: string): Boolean;
var
hSession: HINTERNET; // ÀÎÅÍ³Ý ¼¼¼Ç
hFile: HINTERNET; // ÆÄÀÏ ÇÚµé
FileStream: TFileStream;
Buffer: array[0..2047] of Byte;
ReadByte: Cardinal;
begin
hSession := nil;
hFile := nil;
Result := False;
// ¼¼¼Ç ¿±â
hSession := InternetOpen(PChar('DoRi Agent'), INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, INTERNET_FLAG_DONT_CACHE);
if hSession = nil then Exit;
try
// URL ÆÄÀÏ ¿±â
hFile := InternetOpenUrl(hSession, PChar(AURL), nil, 0, INTERNET_FLAG_DONT_CACHE, 0);
if hFile = nil then Exit;
// ÆÄÀÏ ½ºÆ®¸²¿±â
FileStream := TFileStream.Create(ALocalFile, fmCreate);
try
// URL ÆÄÀÏ -> ÆÄÀÏ ½ºÆ®¸²
while (InternetReadFile(hFile, @Buffer[0], 2048, ReadByte)) do
begin
if ReadByte = 0 then break;
FileStream.WriteBuffer(Buffer, ReadByte);
end;
Result := True;
finally
FileStream.Free;
end;
InternetCloseHandle(hFile);
finally
InternetCloseHandle(hSession);
end;
end; // --> InternetFileDown
»ç¿ëÀº ¾Æ·¡¿Í °°ÀÌ ÇÏ½Ã¸é µË´Ï´Ù.
if InternetFileDown(edtURL.Text, edtFile.Text) then
ShowMessage('´Ù¿î·Îµå¼º°ø')
else
ShowMessage('´Ù¿î·Îµå½ÇÆÐ');
÷ºÎÆÄÀÏÀº Á¦°¡ ÆÄÀÏ ´Ù¿î ¹Þµµ·Ï .pas ÆÄÀÏ·Î ¸¸µé¾ú½À´Ï´Ù.
À§¿¡¼ WinINet ÆÄÀÏÀº ¹Ù·Î File·Î º¯È¯ÀÌ ºÒ°¡´É ÇÕ´Ï´Ù.
±×·¡¼ ÆÄÀÏ ½ºÆ®¸²À¸·Î º¹»çÇÏ´Â °ÍÀÔ´Ï´Ù.
HINTERNET InternetOpen(
LPCTSTR lpszAgent,
DWORD dwAccessType,
LPCTSTR lpszProxyName,
LPCTSTR lpszProxyBypass,
DWORD dwFlags
);
InternetOpen() ÇÔ¼ö´Â WinINet À» »ç¿ëÇϱâ À§ÇØ ÃʱâÈ ÇÏ´Â ÇÔ¼ö ÀÔ´Ï´Ù. HINTERNET ÇÚµéÀ» ³Ñ°Ü ÁÝ´Ï´Ù.
ù¹ø° ÀÎÀÚ PChar('DoRi Agent') ´Â
¾Æ¹«°Å³ª ¾²¸é µË´Ï´Ù. ÀÎÅͳݿ¡ Á¢±ÙÇÒ¶§´Â Ç×»ó ÀڱⰡ ¾î¶² ÀÏÀ» Çϱâ À§ÇØ Á¢±ÙÇß´Ù´Â °ÍÀ» ³ªÅ¸ ³»±â À§ÇØ ÀÚ±â À̸§À» ¹àÈù´Ù°í »ý°¢ ÇÏ¸é µË´Ï´Ù. ±×°Ô ¹Ù·Î ÀÌ°ÍÀÔ´Ï´Ù.
µÎ¹ø° ÀÎÀÚ´Â access ŸÀÔÀÔ´Ï´Ù.
- INTERNET_OPEN_TYPE_DIRECT
- INTERNET_OPEN_TYPE_PRECONFIG
- INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY
- INTERNET_OPEN_TYPE_PROXY
ÀÌ Å¸ÀÔÁß Çϳª¸¸ ¼±ÅÃÇؼ ³Ö¾î ÁÖ¸é µË´Ï´Ù.
ÀÚ¼¼ÇÑ °Å´Â ³ªÁß¿¡ Çѹø °Á¸¦ ÇÏ°Ú½À´Ï´Ù. MSDNÀ» º¸¼Åµµ ÁÁ±¸¿ä..!!! ^^;
¼¼¹ø°¿Í ³×¹ø°´Â ÇÁ·Ï½Ã¿Í °ü·ÃµÈ °ÍÀÔ´Ï´Ù.
´Ù¼¸¹ø°´Â ¾Æ·¡ 3°³ÀÇ ÀÎÀÚ¸¦ Á¶ÇÕÇÏ¿© »ç¿ëÇÏ¸é µË´Ï´Ù.
- INTERNET_FLAG_ASYNC
- INTERNET_FLAG_FROM_CACHE
- INTERNET_FLAG_OFFLINE
InternetOpenUrl ÇÔ¼ö´Â Http, Gopher, FTP ¿¡¼ ¸®¼Ò½º¸¦ ¿´Â ¿ªÈ°À» ÇÕ´Ï´Ù.
HINTERNET InternetOpenUrl(
HINTERNET hInternet,
LPCTSTR lpszUrl,
LPCTSTR lpszHeaders,
DWORD dwHeadersLength,
DWORD dwFlags,
DWORD_PTR dwContext
);
Parameters
ù¹ø° ÀÎÀÚ´Â ÇöÀç ÀÎÅÍ³Ý SessionÀÇ ÇÚµéÀÌ°í,
µÎ¹ø° ÀÎÀÚ´Â URL ÀÌ°í, ftp:, gopher:, http:, https: ÀÌ°ÍÁß Çϳª·Î ¹Ýµå½Ã ½ÃÀÛÇØ¾ß µÈ´Ù.
¼¼¹ø° ÀÎÀÚ´Â http ¼¹ö¿¡ º¸³»Áö´Â ÇØ´õÀÌ´Ù.
³×¹ø° ÀÎÀÚ´Â ÇØ´õÀÇ ±æÀÌÀÌ°í,
´Ù¼¸¹ø° ÀÎÀÚ´Â 19°³ÀÇ FLAG µéÀε¥, ÀÐ¾î ¿Ã¶§ ¾î¶² ÇüÅ·ΠÀÐ¾î ¿ÃÁö ¼±ÅÃÇÏ´Â °ÍÀÌ´Ù.
¸¶Áö¸· ÀÎÀÚ´Â ¾îÇø®ÄÉÀ̼ǿ¡¼ ¼±¾ðµÇ¾î¼ ¸®ÅÏµÈ ÇÚµéÀ» °¡Áö°í callback ÇÔ¼ö¸¦ Åë°úÇÏ´Â º¯¼öÀÇ Æ÷ÀÎÅÍ ÀÌ´Ù.
¾Æ·¡´Â WinInet.pas¿¡ ¼±¾ðµÈ InternetOpenURL ÇÔ¼öÀÌ´Ù.
function InternetOpenUrl(hInet: HINTERNET; lpszUrl: PChar;
lpszHeaders: PChar; dwHeadersLength: DWORD; dwFlags: DWORD;
dwContext: DWORD): HINTERNET; stdcall;
|
|
 |

| |