WSAAsyncGetHostByName
WSAAsyncGetHostByName ÇÔ¼ö´Â ÁöÁ¤µÈ È£½ºÆ® À̸§°ú ÀÏÄ¡Çϴ ȣ½ºÆ® Á¤º¸¸¦ ºñµ¿±âÀûÀ¸·Î ¾ò¾î³»´Â ÇÔ¼ö ÀÔ´Ï´Ù.
HANDLE WSAAsyncGetHostByName (
HWND hWnd,
unsigned int wMsg,
const char FAR * name,
char FAR * buf,
int buflen
);
Parameters
hWnd
[ÀÔ·Â]
ºñµ¿±âÀûÀÎ ¿äûÀÌ ¿Ï·áµÇ¾úÀ» ¶§ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÒ À©µµ¿ìÀÇ ÇÚµé
wMsg
[ÀÔ·Â]
ºñµ¿±âÀûÀÎ ¿äûÀÛ¾÷ÀÌ ¿Ï·áµÇ¾úÀ» ¶§ ¼ö½ÅµÉ ¸Þ½ÃÁö
name
[ÀÔ·Â]
³Î ¹®ÀÚ·Î ³¡³ª´Â È£½ºÆ® À̸§
buf
[Ãâ·Â]
HOSTENT
µ¥ÀÌÅ͸¦ ¼ö½ÅÇϱâ À§ÇÑ µ¥ÀÌÅÍ ¿µ¿ªÀÇ Æ÷ÀÎÅÍÀÔ´Ï´Ù. ÀÌ µ¥ÀÌÅÍ ¿µ¿ªÀº HOSTENT
±¸Á¶Ã¼ÀÇ Å©±âº¸´Ù ´õ Ä¿¾ß ÇÕ´Ï´Ù. ¿Ö³ÄÇϸé, ¾ò¾îÁö´Â µ¥ÀÌÅÍ ¿µ¿ªÀº HOSTENT
±¸Á¶Ã¼¿Í HOSTENT
±¸Á¶Ã¼ÀÇ ¸ðµç ¸â¹ö¸¦ Æ÷ÇÔÇϱâÀ§ÇÏ¿© À©µµ¿ìÁî ¼ÒÄÏ ½Ã½ºÅÛÀÌ »ç¿ëÇϱ⠶§¹®ÀÔ´Ï´Ù.
ÀϹÝÀûÀ¸·Î ¹öÆÛÀÇ Å©±â·Î MAXGETHOSTSTRUCT¸¦ »ç¿ëÇÕ´Ï´Ù.
buflen
[ÀÔ·Â]
buf
¸Å°³º¯¼ö¸¦ À§ÇÑ µ¥ÀÌÅÍ ¿µ¿ªÀÇ Å©±â¸¦ ¸í½Ã ÇÕ´Ï´Ù.
Remarks
WSAAsyncGetHostByName ÇÔ¼ö´Â gethostbyname ÇÔ¼öÀÇ ºñµ¿±â ¹öÀüÀÔ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ È£½ºÆ® À̸§°ú ÀÏÄ¡ÇÏ´Â ¾îµå·¹½º Á¤º¸¸¦ ¾ò¾î³»±â À§Çؼ »ç¿ëµË´Ï´Ù. À©µµ¿ìÁî ¼ÒÄÏ ½Ã½ºÅÛÀº ¿¬»êÀ» ½ÃÀÛÇϰí, ÇÔ¼ö´Â ¹Ù·Î ¹ÝȯµÇ°í, º¸ÀÌÁö ¾Ê°Ô ¹éÀ¸·Î ¿¬»êÀ» ¼öÇàÇÕ´Ï´Ù. "ºñµ¿±â ÀÛ¾÷ ÇÚµé(asynchronous task handle)" Àº ¾îÇø®ÄÉÀ̼ǿ¡¼ ¿¬»çÀÇ ½Äº°ÀÚ·Î »ç¿ë ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¬»ê(operation)ÀÌ ¿Ï·á µÇ¾úÀ» ¶§ ±× °á°ú´Â ÇÔ¼öÀÇ ¸Å°³º¯¼ö·Î ÁöÁ¤ÇÑ ¹öÆÛ¿¡ Ä«Çǵǰí, ¸Þ½ÃÁö´Â ¾îÇø®ÄÉÀÌ¼Ç À©µµ¿ì·Î Àü´Þ µË´Ï´Ù.
ºñµ¿±âÀûÀÎ ¿¬»êÀÌ ¿Ï·á µÇ¾úÀ» ¶§ hWnd ¸Å°³º¯¼ö·Î ÁöÁ¤µÈ ¾îÇø®ÄÉÀÌ¼Ç À©µµ¿ì´Â wMsg ¸Å°³º¯¼öÀÎ ¸Þ½ÃÁö¸¦ ¹Þ°Ô µË´Ï´Ù. wParam ¸Å°³º¯¼ö´Â ºñµ¿±â ÀÛ¾÷(task) ÇÚµéÀ» °¡Áö´Â ¸Å°³º¯¼öÀÔ´Ï´Ù. lParamÀÇ »óÀ§ 16ºñÆ®´Â ¿¡·¯Äڵ带 °¡Áö°í ÀÖ½À´Ï´Ù. ¿¡·¯ÄÚµå´Â WINSOCK(2).H Çì´õ ÆÄÀÏ¿¡ Á¤ÀÇµÈ ¿¡·¯Äڵ尡 µÉ ¼ö ÀÖ½À´Ï´Ù. ¿¡·¯Äڵ尡 0 ÀÏ °æ¿ì ºñµ¿±â ¿¬»ê(operation)ÀÇ ¼º°øÀûÀÎ ¿Ï·á¸¦ ÀǹÌÇÕ´Ï´Ù.
¼º°øÀûÀÎ ¿Ï·á½Ã¿¡ ÇÔ¼öÈ£Ãâ½Ã¿¡ ÁöÁ¤ÇÑ ¹öÆÛ´Â HOSTENT ±¸Á¶Ã¼¸¦ °¡Áý´Ï´Ù. ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö¸¦ Á¢±ÙÇϱâÀ§Çؼ´Â ¿ø·¡ ¹öÆÛ ¸Þ¸ð¸® ÁÖ¼Ò¸¦ HOSTENT ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅͷΠij½ºÆÃ ÇÏ°í³ª¼ Á¢±Ù ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸¸¾à ¿¡·¯Äڵ尡 WSAENOBUFS ÀÏ °æ¿ì buflen ¸Å°³º¯¼ö¿¡ ÀÇÇØ¼ ÁöÁ¤µÈ ¹öÆÛÀÇ Å©±â°¡ °á°ú·Î ¾òÀº Á¤º¸¸¦ ´ã±â¿¡ ³Ê¹« ÀÛ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ÀÌ·± °æ¿ì lParam ÀÇ ÇÏÀ§ 16ºñÆ®´Â Á¤º¸¸¦ ´ã±âÀ§ÇØ ÇÊ¿äÇÑ ¹öÆÛÀÇ Å©±â¸¦ ³ªÅ¸³»°Ô µË´Ï´Ù. ¸¸¾à ¾îÇø®ÄÉÀ̼ÇÀÌ ÀÌ·¸°Ô ¾òÀº ÀϺκРµ¥ÀÌÅͰ¡ ÇÊ¿ä¾ø´Â µ¥ÀÌÅͶó¸é, ¿øÇÏ´Â Á¤º¸¸¦ ´ã±âÀ§Çؼ ÃæºÐÇÑ ¹öÆÛÀÇ Å©±â¸¦ ¼³Á¤Çϰí WSAAsyncGetHostByName ÇÔ¼ö¸¦ ´Ù½Ã È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ÇÔ¼ö¸¦ À§ÇÏ¿© ÁöÁ¤µÈ ¹öÆÛ´Â HOSTENT ±¸Á¶Ã¼ÀÇ ¸â¹ö¿¡ ÀÇÇØ¼ ÂüÁ¶µÇ´Â µ¥ÀÌÅÍ ¿µ¿ª°ú ÇÔ²² HOSTENT ±¸Á¶Ã¼¸¦ ±¸¼ºÇϱâÀ§ÇØ À©µµ¿ìÁî ¼ÒÄÏ ½Ã½ºÅÛ¿¡¼ »ç¿ëµË´Ï´Ù. WSAENOBUFS ¿¡·¯¸¦ ÇÇÇϱâ À§Çؼ´Â ¾îÇø®ÄÉÀ̼ǿ¡¼ ¹öÆÛÀÇ Å©±â¸¦ Àû¾îµµ MAXGETHOSTSTRUCT(WINSOCK(2).H Çì´õÆÄÀÏ¿¡ Á¤ÀǵÊ) ¹ÙÀÌÆ®ÀÇ Å©±â¸¸ÅÀ» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.
¿¡·¯ÄÚµå ±×¸®°í ¹öÆÛÀÇ ±æÀÌ´Â lParam À¸·ÎºÎÅÍ »Ì¾Æ³»¾ß ÇÕ´Ï´Ù. ÀÌ µ¥ÀÌÅ͸¦ »Ì¾Æ³»´Âµ¥´Â WINSOCK(2).H Çì´õÆÄÀÏ¿¡ Á¤ÀÇµÈ WSAGETASYNCERROR ¸ÅÅ©·Î¿Í WSAGETASYNCBUFLEN ¸ÅÅ©·Î°¡ »ç¿ëµË´Ï´Ù. ¾Æ·¡¿¡ ÀÌµé ¸ÅÅ©·Î¸¦ °£´ÜÈ÷ ³ª¿ ÇØ º¸¾Ò½À´Ï´Ù. ÇÁ·Î±×·¥½Ã ÀÌµé ¸ÅÅ©·Î¸¦ »ç¿ëÇÔÀ¸·Î½á À©µµ¿ìÁî ¼ÒÄÏ ÄÚµåÀÇ À̽ļº(portability)À» Çâ»ó ½Ãų ¼ö ÀÖ´Ù°í Çϳ׿ä.
#define WSAGETASYNCERROR(lParam) HIWORD(lParam)
//¿¡·¯ÄÚµå °Ë»ö
#define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam)
//ÇÊ¿äÇÑ ¹öÆÛÀÇ ±æÀÌ °Ë»ö
Return Values
¹Ýȯ°ªÀº ´ÜÁö ºñµ¿±â ¿¬»êÀÌ ¼º°øÀûÀ¸·Î ½ÃÀÛÇÏ´À³Ä ±×·¸Áö ¾Ê´À³Ä¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ·¯ÇÑ ºñµ¿±â ¿¬»êÀÇ °æ¿ì ¹Ýȯ°ªÀ¸·Î ¿¬»ê ÀÚüÀÇ ¼º°øÀÌ³Ä ½ÇÆÐ³Ä¸¦ °áÁ¤ÇÒ ¼ø ¾ø½À´Ï´Ù.
¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÀº °æ¿ì, WSAAsyncGetHostByName ÇÔ¼ö´Â ºñµ¿±â ÀÛ¾÷(task) ÇÚµé(À©µµ¿ìÁîÀÇ HTASK °ú Çò°¥¸®Áö ¸¶¼¼¿ä)ÀÎ HANDLE ŸÀÔÀ» ¹Ýȯ ÇÕ´Ï´Ù. ÀÌ Çڵ鰪Àº µÎ°¡Áö ¹æ¹ýÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ù ¹øÂ°´Â WSACancelAsyncRequest ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¿¬»êÀ» Ãë¼Ò ½Ã۴µ¥ »ç¿ëÇÒ ¼ö ÀÖ°í, ºñµ¿±â ¿¬»ê°ú wParam ¸Þ½ÃÁö ¸Å°³º¯¼öÀÎ ¿Ï·á ¸Þ½ÃÁö¿Í ¸ÂÃß¾î º¸´Âµ¥ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
¸¸¾à ºñµ¿±â ¿¬»êÀÌ ½ÃÀÛµÉ ¼ö ¾ø¾ú´Ù¸é, WSAAsyncGetHostByName ÇÔ¼ö´Â 0À» ¸®ÅÏÇϰí, WSAGetLastError ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ƯÁ¤ÇÑ ¿¡·¯Äڵ带 ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.
Error Codes
¾Æ·¡ÀÇ ¿¡·¯ÄÚµå´Â ¾îÇø®ÄÉÀÌ¼Ç À©µµ¿ì°¡ ¸Þ½ÃÁö¸¦ ¹Þ¾ÒÀ» ¶§ ¼³Á¤µÉ ¼ö ÀÖ½À´Ï´Ù. ¾Õ¼ ¼³¸í ÇßµíÀÌ, WSAGETASYNCERROR ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇØ¼ ÀÀ´ä ¸Þ½ÃÁöÀÎ lParamÀ¸·ÎºÎÅÍ ¿¡·¯Äڵ带 »Ì¾Æ³¾ ¼ö Àִٴ°ÅÁ®.
WSAENETDOWN | ³×Æ®¿÷ ¼ºê ½Ã½ºÅÛ¿¡¼ ¿¡·¯°¡ ¹ß»ý
Çß½À´Ï´Ù. |
WSAENOBUFS | »ç¿ë°¡´ÉÇÑ ¹öÆÛ °ø°£ÀÌ ºÎÁ·ÇÕ´Ï´Ù. |
WSAEFAULT | name
¶Ç´Â buf
¸Å°³º¯¼ö°¡ 󸮸¦ Çϱ⿡ ¿Ã¹Ù¸¦ ÇüŰ¡ ¾Æ´Õ´Ï´Ù. |
WSAHOST_NOT_FOUND | Á¤´çÇÑ(Authoritative) È£½ºÆ®¸¦ ã¾Æ³¾ ¼ö ¾ø½À´Ï´Ù. |
WSATRY_AGAIN | Á¤´çÇÏÁö ¾ÊÀº(Non-Authoritative)¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù. ¶Ç´Â ¼¹ö½ÇÆÐ ÀÔ´Ï´Ù. |
WSANO_RECOVERY | ȸº¹ÇÒ ¼ö ¾ø´Â ¿¡·¯¹ß»ý |
WSANO_DATA | À߸øµÈ À̸§(name)À¸·Î ¾Æ¹«·± µ¥ÀÌÅͰ¡ ±â·ÏµÇÁö ¾Ê¾Ò½À´Ï´Ù. |
¾Æ·¡ÀÇ ¿¡·¯ÄÚµå´Â º» ÇÔ¼ö¸¦ È£Ãâ ÇßÀ» ¶§ ¹ß»ýµÉ ¼ö ÀÖ´Â ¿¡·¯ÄÚµåÀÔ´Ï´Ù. ±×¸®°í, ÀÌ·¯ÇÑ ¿¡·¯Äڵ尡 °ËÃ⠵ǾúÀ» ¶§ ºñµ¿±â ¿¬»êÀº ½ÃÀÛ µÉ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
WSANOTINITIALISED | ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ ÀÌÀü¿¡ WSAStartup ÇÔ¼ö¸¦ ¼º°øÀûÀ¸·Î È£ÃâÇØ¾ß ÇÕ´Ï´Ù. |
WSAENETDOWN | ³×Æ®¿÷ ¼ºê ½Ã½ºÅÛ¿¡¼ ¿¡·¯°¡ ³µ½À´Ï´Ù. |
WSAEINPROGRESS | ºí·°Å· À©¼Ó v1.1ÀÌ ÁøÇà»óÅ¿¡ Àְųª, ¼ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ ¾ÆÁ÷ ÄݹéÇÔ¼ö¸¦ ÁøÇàÇϰí ÀÖ½À´Ï´Ù. |
WSAEWOULDBLOCK | ºñµ¿±â ¿¬»êÀÌ ¸®¼Ò½º³ª ´Ù¸¥ ¹Ý´ëÀûÀÎ ¿ä¼Òµé ¶§¹®¿¡ ÁøÇàµÉ ¼ö ¾ø½À´Ï´Ù. |
QuickInfo
Windows NT : »ç¿ë°¡´É
Windows :
»ç¿ë°¡´É
Windows CE : ¹öÁ¯ 1.0 ±×¸®°í ±×ÀÌÈÄÀÇ ¹öÁ¯¿¡¼ »ç¿ë°¡´É
Header
:
Win16/32
: winsock.h
Win32-II
: winsock2.h
Import Library :
Win16 : winsock.lib
Win32
: wsock32.lib
Win32-II
: ws2_32.lib