WSAGetOverlappedResult

WSAGetOverlappedResult ÇÔ¼ö´Â ¸Å°³º¯¼ö·Î ÁöÁ¤ÇÑ ¼ÒÄÏ¿¡ ´ëÇÑ ¿À¹ö·¦ ¿¬»êÀÇ °á°ú¸¦ ¹ÝȯÇÏ´Â ÇÔ¼ö ÀÔ´Ï´Ù.

BOOL WSAGetOverlappedResult (
        SOCKET                     
s,
        LPWSAOVERLAPPED   
lpOverlapped,
        LPDWORD                 
 lpcbTransfer,
        BOOL                        
 fWait,
        LPDWORD                  
lpdwFlags
);

 

Parameters

s
[ÀÔ·Â] ¼ÒÄÏÀ» ½Äº°ÇÏ´Â ±â¼úÀÚÀÔ´Ï´Ù. ÀÌ ¼ÒÄÏÀº
WSARecv, WSARecvFrom, WSASend, WSASendTo ¶Ç´Â WSAIoctl ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ÁöÁ¤ÇÑ ¼ÒÄÏ°ú °°Àº ¼ÒÄÏÀÔ´Ï´Ù.

lpOverlapped
[ÀÔ·Â] ¿À¹ö·¦ ¿¬»êÀÌ ½ÃÀÛµÉ ¶§ ÁöÁ¤µÈ
WSAOVERLAPPED ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅÍ

pcbTransfer
[Ãâ·Â] Àü¼ÛÀ̳ª ¼ö½Å ¿¬»ê ¶Ç´Â WSAIoctl ÇÔ¼ö¿¡ ÀÇÇؼ­ ½ÇÁ¦ÀûÀ¸·Î ¼Û/¼ö½ÅµÈ ¹ÙÀÌÆ®ÀÇ °¹¼ö¸¦ ¹Þ´Â 32ºñÆ® º¯¼ö¿¡ ´ëÇÑ Æ÷ÀÎÅÍ

fWait
[ÀÔ·Â] fWait ¸Å°³º¯¼ö´Â ¿À¹ö·¦ ¿¬»êÀ» ¿Ï·áÇϱâÀ§ÇØ ´ë±âÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â Ç÷¡±×ÀÔ´Ï´Ù. ¸¸¾à ÀÌ °ªÀÌ TRUE¶ó¸é, ÇÔ¼ö´Â ÀÛ¾÷ÀÌ ¿Ï·áµÉ ¶§±îÁö ¹ÝȯÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à ÀÌ ¸Å°³º¯¼ö°¡ FALSEÀÌ°í ¿¬»êÀÌ ¿©ÀüÈ÷ ±â´Ù¸² »óŶó¸é, ÀÌ ÇÔ¼ö´Â FALSE¸¦ ¹ÝȯÇÏ°í,
WSAGetLastError ÇÔ¼ö´Â WSA_IO_INCOMPLETE ¿¡·¯Äڵ带 ¹Ýȯ ÇÒ °ÍÀÔ´Ï´Ù. fWait ¸Å°³º¯¼ö´Â ¿À¹ö·¦ ¿¬»êÀÌ À̺¥Æ® ±â¹ÝÀÇ ¿Ï·áÅëÁö·Î ¼±Åà µÇ¾úÀ» °æ¿ì¸¸ TRUE·Î ¼³Á¤µÇ¾î¾ß ÇÕ´Ï´Ù.

lpdwFlags
[Ãâ·Â] ÀÛ¾÷ ¿Ï·á »óŸ¦ °¡Áø ÇÑ °³ ¶Ç´Â ¿©·¯°³ÀÇ Ç÷¡±×¸¦ ¼ö½ÅÇÒ 32ºñÆ®ÀÇ º¯¼ö¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÔ´Ï´Ù. ¸¸¾à ¿À¹ö·¦ ¿¬»êÀÌ
WSARecv ³ª WSARecvFrom À¸·Î ½ÃÀ۵Ǿú´Ù¸é, ÀÌ ¸Å°³º¯¼ö´Â lpFlags ¸Å°³º¯¼ö¿¡ ´ëÇÑ °á°ú °ªÀ» °¡Áö°í ÀÖ°Ô µË´Ï´Ù.

 

Remarks

WSAGetOverlappedResult ÇÔ¼ö´Â ÁöÁ¤µÈ ¼ÒÄÏ¿¡ ´ëÇؼ­ ¸¶Áö¸· ¿À¹ö·¦ ¿¬»êÀÇ °á°ú¸¦ ¾Ë·ÁÁÝ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ¿À¹ö·¦ ÇÔ¼ö¸¦ È£ÃâÇßÀ» ¶§ ÁöÁ¤µÇ¾î »ç¿ëµÈ ¼ÒÄÏ ±â¼úÀÚ¿Í WSAOVERLAPPED ±¸Á¶Ã¼¸¦ ³Ñ°Ü ¹Þ½À´Ï´Ù. ÀÛ¾÷ÁßÀÎ ¿¬»êÀº ¿¬»êÀ» ½ÃÀÛÇÑ ÇÔ¼ö°¡ FALSE¸¦ ¹ÝȯÇßÀ» ¶§ ¾Ë·ÁÁö°Ô µÇ°í, WSAGetLastError ÇÔ¼ö´Â WSA_IO_PENDINGÀ» ¹ÝȯÇÏ°Ô µË´Ï´Ù. WSARecv ÇÔ¼ö¿Í °°Àº I/O ¿¬»êÀÌ ±â´Ù¸² »óÅÂÀÏ ¶§, ¿¬»êÀ» ½ÃÀÛÇÑ ÇÔ¼ö´Â ½ÅÈ£¹ÞÁö ¾ÊÀº »óŸ¦ À§ÇØ WSAOVERLAPPED ±¸Á¶Ã¼ÀÇ hEvent ¸â¹ö¸¦ ¸®¼ÂÇÕ´Ï´Ù. ±×·±ÈÄ... ´ë±âÇÏ°í ÀÖ´ø ¿¬»êÀÌ ÀÛ¾÷À» ¿Ï·á ÇßÀ» ¶§ ½Ã½ºÅÛÀº ½ÅÈ£¹ÞÀº »óŸ¦ Ç¥½ÃÇϱâ À§Çؼ­ À̺¥Æ® °´Ã¼¸¦ ¼³Á¤ÇÏ°Ô µË´Ï´Ù.

¸¸¾à fWait ¸Å°³º¯¼ö°¡ TRUE¶ó¸é, WSAGetOverlappedResult ÇÔ¼ö´Â ±â´Ù¸®°í ÀÖ´Â ¿¬»êÀÌ ½ÅÈ£¹ÞÀº »óÅ·Π¿Ï·áµÇ¾ú´ÂÁö ¾Æ´ÑÁö¸¦ °áÁ¤ÇÏ°Ô µË´Ï´Ù. Ŭ¶óÀ̾ðÆ®´Â I/O ¿¬»êÀÌ ¿äûµÇ¾î Á³À» ¶§ À̺¥Æ® ±â¹ÝÀÇ ¿Ï·á ÅëÁö¸¦ ¼±ÅÃÇßÀ» °æ¿ì¸¸ fWait ¸Å°³º¯¼ö¸¦ TRUE·Î ¼³Á¤ ÇÕ´Ï´Ù. ¸¸¾à ´Ù¸¥ ÇüÅÂÀÇ ÅëÁö°¡ ¼±ÅõǾî Á³´Ù¸é, WSAOVERLAPPED ±¸Á¶Ã¼ÀÇ hEvent ¸Å°³º¯¼öÀÇ »ç¿ë¹ýÀº ´Ù¸¦ °ÍÀÔ´Ï´Ù. ±×¸®°í, fWait ¸Å°³º¯¼ö¸¦ TRUE·Î ¼³Á¤ÇÏ´Â °ÍÀº ¿¹±âÄ¡ ¾ÊÀº °á°ú¸¦ °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù.

 

Return Values

ÇÔ¼ö°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÈ´Ù¸é, TRUE¸¦ ¹ÝȯÇÏ°Ô µË´Ï´Ù. ÀÌ·¸°Ô ÇÔ¼ö°¡ ¼º°øÀûÀ¸·Î ¼öÇà µÇ¾ú´Ù´Â Àǹ̴ ¿À¹ö·¦ ¿¬»êÀÌ ¼º°øÀûÀ¸·Î ¼öÇà µÇ¾ú´Ù´Â ÀǹÌÀÌ°í, lpcbTransfer ¸Å°³º¯¼ö·Î Æ÷ÀÎÆ®µÈ °ªÀÌ ¾÷µ¥ÀÌÆ® µÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ¹Ý¸é, ÀÌ ÇÔ¼ö°¡ FALSE¸¦ ¹Ýȯ Çß´Ù´Â Àǹ̴ ¿À¹ö·¦ ¿¬»êÀÌ ¾ÆÁ÷ ¿Ï·áµÇÁö ¾Ê¾Ò°Å³ª, ¿À¹ö·¦ ¿¬»êÀÌ ¿Ï·áµÇ¾úÀ¸³ª ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ìÀ̰ųª, ¿À¹ö·¦ ¿¬»êÀÇ ¿Ï·á »óÅ°¡ WSAGetOverlappedResult ÇÔ¼öÀÇ ¸Å°³º¯¼ö¿¡ ¿¡·¯°¡ À־ °áÁ¤µÇÁö ¸øÇÑ °æ¿ìÀÔ´Ï´Ù. ÀÌ·¸°Ô ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ì¿¡ lpcbTransfer ¸Å°³º¯¼ö´Â ¾÷µ¥ÀÌÆ® µÇÁö ¾Ê½À´Ï´Ù. ÀÌ·² ¶§ ¼¼ºÎÀûÀÎ ¿¡·¯¸¦ ã¾Æ³»°íÀÚ ÇÑ´Ù¸é, WSAGetLastError ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ƯÁ¤ÇÑ ¿¡·¯Äڵ带 ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.

 

Error Codes

WSANOTINITIALISED

ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ¼º°øÀûÀÎ WSAStartup ÇÔ¼öÀÇ È£ÃâÀÌ ¾ø¾ú½À´Ï´Ù.

WSAENETDOWN ³×Æ®¿÷ ¼­ºê ½Ã½ºÅÛ¿¡¼­ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.
WSAENOTSOCK ÁöÁ¤µÈ ¼ÒÄÏÀÌ ¼ÒÄÏ ±â¼úÀÚ°¡ ¾Æ´Õ´Ï´Ù.
WSA_INVALID_HANDLE WSAOVERLAPPED ±¸Á¶Ã¼ÀÇ hEvent Çʵ尡 ¿Ã¹Ù¸¥ À̺¥Æ® °´Ã¼ ÇÚµéÀ» Æ÷ÇÔÇÏ°í ÀÖÁö ¾Ê½À´Ï´Ù.
WSA_INVALID_PARAMETER ¸Å°³º¯¼öÁß Çϳª°¡ À߸øµÇ¾ú½À´Ï´Ù.
WSA_IO_INCOMPLETE fWait ¸Å°³º¯¼ö°¡ FALSE·Î ¼³Á¤µÇ¾î ÀÖ°í, I/O ¿¬»êÀÌ ¾ÆÁ÷ ¿Ï·áµÇÁö ¾Ê¾Ò½À´Ï´Ù.
WSAEFAULT lpOverlapped, lpcbTransfer ¶Ç´Â lpdwFlags ¸Å°³º¯¼öÁß¿¡ À߸øµÈ ¸Þ¸ð¸® °ø°£À» °¡Áö°í ÀÖ´Â ¸Å°³º¯¼ö°¡ ÀÖ½À´Ï´Ù.

 

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, WSAAccept, WSAConnect, WSACreateEvent, WSAIoctl, WSARecv, WSARecvFrom, WSASend, WSASendTo, WSAWaitForMultipleEvents