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