WSAAsyncGetProtoByName

WSAAsyncGetProtoByName ÇÔ¼ö´Â ÁöÁ¤µÈ ÇÁ·ÎÅäÄÝ À̸§°ú ÀÏÄ¡ÇÏ´Â ÇÁ·ÎÅäÄÝ Á¤º¸¸¦ ºñµ¿±âÀûÀ¸·Î ¾ò¾î³»´Â ÇÔ¼ö ÀÔ´Ï´Ù.

HANDLE WSAAsyncGetProtoByName (
        HWND   
hWnd,
        unsigned int   
wMsg,
        const char FAR *  
 name,
        char FAR *   
buf,
        int   
buflen
);

 

Parameters

hWnd
[ÀÔ·Â] ºñµ¿±âÀûÀÎ ÀÛ¾÷¿äûÀÌ ¿Ï·áµÇ¾úÀ» ¶§, ¸Þ½ÃÁö¸¦ ÅëÁö¹ÞÀ» À©µµ¿ìÀÇ ÇÚµé

wMsg
[ÀÔ·Â] ºñµ¿±âÀûÀÎ ÀÛ¾÷ ¿äûÀÌ ¿Ï·áµÇ¾úÀ» ¶§, ¼ö½Å¹ÞÀ» ¸Þ½ÃÁö

name
[ÀÔ·Â] null ¹®ÀÚ·Î ³¡³ª´Â ÇÁ·ÎÅäÄÝ À̸§ Æ÷ÀÎÅÍ

buf
[Ãâ·Â] PROTOENT µ¥ÀÌÅ͸¦ ¼ö½ÅÇϱâ À§ÇÑ µ¥ÀÌÅÍ ¿µ¿ª Æ÷ÀÎÅÍÀÔ´Ï´Ù. ÀÌ µ¥ÀÌÅÍ ¿µ¿ªÀº PROTOENT ±¸Á¶Ã¼ÀÇ Å©±âº¸´Ù ´õ Ä¿¾ß ÇÕ´Ï´Ù. ¿Ö³Ä¹È... µ¥ÀÌÅÍ ¿µ¿ªµ¥ PROTOENT ±¸Á¶Ã¼¿Í, PROTOENT ±¸Á¶Ã¼ÀÇ ¸ðµç ¸â¹öµéÀ» Æ÷ÇÔÇϱâÀ§ÇØ À©µµÁî ¼ÒÄÏÀÌ »ç¿ëÇϱ⠶§¹®ÀÔ´Ï´Ù. ¹öÆÛÀÇ Å©±â´Â MAXGETHOSTSTRUCT byte ¸¸Å­ÀÇ Å©±â°¡ ÁÖ·Î »ç¿ëµË´Ï´Ù.

buflen
[Ãâ·Â]
buf ¸Å°³º¯¼ö¸¦ À§ÇÑ µ¥ÀÌÅÍ ¿µ¿ªÀÇ Å©±â

 

Remarks

WSAAsyncGetProtoByName ÇÔ¼ö´Â getprotobyname ÇÔ¼öÀÇ ºñµ¿±â ¹öÀüÀÔ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ÁÖ¾îÁø ÇÁ·ÎÅäÄÝ À̸§°ú ºÎÇÕÇÏ´Â ÇÁ·ÎÅäÄÝ À̸§°ú ¹øÈ£¸¦ À©µµÁî ¼ÒÄÏ µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ ¾ò¾î³À´Ï´Ù. ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ°í ³ª¸é, ¹Ù·Î ÇÔ¼ö´Â ¸®Åϵ˴ϴÙ. ÇÏÁö¸¸, µ¥ÀÌÅ͸¦ ¾ò¾î³»±â À§ÇÑ ¿¬»êÀº ºñµ¿±â ŽºÅ©·Î µÚ¿¡¼­ ¼öÇàÇÏ°í ÀÖ´Â °ÅÁÒ. ¾îÇ÷¹ÄÉÀ̼ÇÀº ÀÌ ºñµ¿±â ŽºÅ© ÇÚµéÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅ͸¦ ¾ò¾î³»´Â ¿¬»ê°úÁ¤ÀÌ ³¡³ª°Ô µÇ¸é, ±× °á°ú°ªÀº ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ³Ñ°ÜÁÖ¾ú´ø buf¿¡ ÀúÀåµÇ°í hWnd·Î ³Ñ°ÜÁÖ¾ú´ø ¾îÇø®ÄÉÀÌ¼Ç À©µµ¿ì·Î ÀÛ¾÷À» ´Ù ¼öÇà Çß´Ù°í ¸Þ½ÃÁö¸¦ ÁÖ°Ô µË´Ï´Ù.

ºñµ¿±â ¿¬»êÀÌ ¿Ï·áµÇ¾úÀ» ¶§, ¾îÇ÷¹ÄÉÀÌ¼Ç À©µµ¿ì(hWnd)´Â wMsg À¸·Î ¸Þ½ÃÁö¸¦ ¼ö½Å¹Þ°Ô µË´Ï´Ù. wParam ¸Å°³º¯¼ö´Â ¿ø·¡ ÇÔ¼ö¸¦ È£ÃâÇÏ°í ¹Ù·Î¸®ÅÏ ¹Þ¾Ò´ø °Í°ú °°Àº ºñµ¿±â ŽºÅ© ÇÚµéÀ» ¹Þ°Ô µË´Ï´Ù. ±¼±¸, lParamÀÇ »óÀ§ 16ºñÆ®´Â ¿¡·¯Äڵ带 °¡Áö°Ô µË´Ï´Ù. ¿¡·¯ÄÚµå´Â WINSOCK(2).H¿¡ Á¤ÀÇµÈ Æ¯Á¤ÇÑ ¿¡·¯ Äڵ尡 µË´Ï´Ù. ¸¸¾à ¿¡·¯Äڵ尡 0 À̶ó¸é, ºñµ¿±â ÀÛ¾÷ÀÌ ¼º°øÀûÀ¸·Î ¿Ï·á µÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù.

¼º°øÀûÀÎ ¼öÇà ÈÄ¿¡, ¸Ç÷ ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ¸Å°³º¯¼ö·Î ³Ñ°ÜÁÖ¾ú´ø buffer ¸Å°³º¯¼ö ÀÖÁÒ?  ÀÌ ±¸Á¶Ã¼¸¦ Á¢±ÙÇϱâ À§Çؼ­´Â ¿ø·¡ ³Ñ°ÜÁÖ¾ú´ø buffer ¾îµå·¹½º¸¦ PROTOENT ±¸Á¶Ã¼·Î ij½ºÆà ÇØ¾ß ÇÕ´Ï´Ù. ±×·±ÈÄ¿¡ ÀûÀýÈ÷ ¸â¹ö¸¦ Á¢±Ù Çؼ­ »ç¿ëÇÏ¸é µË´Ï´Ù.

¸¸¾à WSAENOBUFS ¿¡·¯Äڵ尡 ¹ß»ý Çß´Ù¸é, buflenÀ¸·Î ÁöÁ¤ÇÑ bufferÀÇ Å©±â°¡ Á¤º¸¸¦ ÀúÀåÇϱ⿡ ³Ê¹« ÀÛÀº °æ¿ìÀÔ´Ï´Ù. ÀÌ·± °æ¿ì lParamÀÇ ÇÏÀ§ 16ºñÆ®´Â ¸ðµç Á¤º¸¸¦ ´ã±âÀ§ÇØ ÇÊ¿äÇÑ ¹öÆÛÀÇ Å©±â¸¦ °¡Áö°Ô µË´Ï´Ù.

Ä£ÀýÇÏ°Ôµµ lParamÀ¸·ÎºÎÅÍ ¿¡·¯ÄÚµå¿Í ÇÊ¿äÇÑ ¹öÆÛÀÇ Å©±â¸¦ »Ì¾Æ³»´Â ¸ÅÅ©·ÎµéÀ» ÁغñÇØ ³õ°í ÀÖ´Â°Ô Àִµ¥¿ä. ¾Æ·¡ÀÇ °ÍÀ»ÀÌ ±×°ÍÀÔ´Ï´Ù. ÀÌ ¸ÅÅ©·ÎµéÀº WINSOCK(2).H¿¡ Á¤ÀÇ µÇ¾î ÀÖ½À´Ï´Ù.
±×Àú HIWORD(...) ¿Í LOWORD(...)¸¦ ´ë½ÅÇß´Ù´Â °Í ¹Û¿¡´Â Ưº°ÇÑ Á¡ÀÌ ¾ø½À´Ï´Ù.

#define WSAGETASYNCERROR(lParam)          HIWORD(lParam)         //¿¡·¯ÄÚµå °Ë»ö
#define WSAGETASYNCBUFLEN(lParam)         LOWORD(lParam)        //ÇÊ¿äÇÑ ¹öÆÛÀÇ ±æÀÌ °Ë»ö

ÀÌ·¯ÇÑ ¸ÅÅ©·Î µéÀ» »ç¿ëÇϸé, ÄÚµåÀÇ À̽ļºÀÌ ÁÁ¾ÆÁø´Ù°í Çϳ׿ä? ^^

 

Return Values

¸®ÅÏ °ªÀº ºñµ¿±â ÀÛ¾÷ÀÌ ¼º°øÀûÀÌµç ¾Æ´Ïµç ¸í½ÃµË´Ï´Ù. ÀÌ °ªÀº ¿¬»ê ±×ÀÚüÀÇ ¼º°øÀ̳ª ½ÇÆи¦ ÀǹÌÇÏÁö ¾Ê½À´Ï´Ù.

¾Æ¹«·± ¿¡·¯°¡ ¹ß»ýµÇÁö ¾Ê¾Ò´Ù¸é, WSAAsyncGetProtoByName ÇÔ¼ö´Â ºñµ¿±â ŽºÅ© ÇÚµéÀÎ HANDLE ŸÀÔÀÎ 0ÀÌ ¾Æ´Ñ °ªÀ» ¹Ýȯ ÇÕ´Ï´Ù. (ŽºÅ© ÇÚµéÀ» À©µµÁî HTASK·Î È¥µ¿ÇÏÁö´Â ¸¶¼¼¿ä). ÀÌ °ªÀº µÎ°¡Áö ¿ëµµ·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×ÁßÇϳª´Â WSACancelAsyncRequest ÇÔ¼ö·Î ÀÛ¾÷À» Ãë¼Ò ÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ°í¿ä, ¶Ç... ÀÛ¾÷À» ¼º°øÀûÀ¸·Î ¿Ï·á ÇßÀ» ¶§ ¸Þ½ÃÁö°¡ ¿ÀÁÒ? ±×¶§ wParam ¸Þ½ÃÁö ¸Å°³º¯¼ö¿Í ºñ±³Çؼ­ ƯÁ¤ÇÑ ºñµ¿±â ÀÛ¾÷À» ±¸ºÐÇØ ³¾ ¼öµµ ÀÖ½À´Ï´Ù.

¸¸¾à ºñµ¿±â ¿¬»êÀÌ ¼º°øÀûÀ¸·Î ½ÃÀÛµÇÁö ¸øÇß´Ù¸é, WSAAsyncGetProtoByName ÇÔ¼ö´Â 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 : Áö¿øµÇÁö ¾ÊÀ½
Header :
          Win16/32 : winsock.h
          Win32-II : winsock2.h
Import Library :
          Win16 : winsock.lib
          Win32 : wsock32.lib
          Win32-II : ws2_32.lib

See Also

overview, getprotobyname, WSACancelAsyncRequest