WSASend

WSASend ÇÔ¼ö´Â Á¢¼ÓµÈ »ó´ë¹æ ¼ÒÄÏ¿¡°Ô ÁöÁ¤ÇÑ µ¥ÀÌÅ͸¦ º¸³»´Â ÇÔ¼öÀÔ´Ï´Ù.

int WSASend (
        SOCKET   
s,
        LPWSABUF   
lpBuffers,
        DWORD   
dwBufferCount,
        LPDWORD   
lpNumberOfBytesSent,
        DWORD   
dwFlags,
        LPWSAOVERLAPPED   
lpOverlapped,
        LPWSAOVERLAPPED_COMPLETION_ROUTINE   
lpCompletionROUTINE
);

 

Parameters

s
[ÀÔ·Â] Á¢¼ÓµÈ ¼ÒÄÏÀ» °¡¸®Å°´Â ¼ÒÄÏ ±â¼úÀÚ

lpBuffers
[ÀÔ·Â]
WSABUF ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ. WSABUF ±¸Á¶Ã¼´Â ¹öÆÛÀÇ Æ÷ÀÎÅÍ¿Í ÆÛÆÛÀÇ ±æÀ̸¦ ³ªÅ¸³»´Â ¸â¹ö·Î ±¸¼ºµÇ´Â ±¸Á¶Ã¼·Î ÀÌ ±¸Á¶Ã¼ÀÇ ¹è¿­À» Æ÷ÀÎÆ® Çؼ­ ³Ñ°ÜÁÝ´Ï´Ù.

dwBufferCount
[ÀÔ·Â] lpBuffer ¹è¿­·Î ÁöÁ¤µÈ
WSABUF ±¸Á¶Ã¼ÀÇ °¹¼ö

lpNumberOfBytesSent
[Ãâ·Â] ÀÌ ÇÔ¼öÀÇ È£Ãâ·Î ÀÎÇؼ­ Àü¼ÛµÈ ¹ÙÀÌÆ®ÀÇ °¹¼ö¸¦ Æ÷ÀÎÆ® ÇÕ´Ï´Ù.

dwFlags
[ÀÔ·Â] ¾î¶»ÇÑ ¹æ½ÄÀ¸·Î Àü¼ÛÀ» ¼öÇà ÇÒ °ÍÀÎÁö ¼³Á¤ÇÏ´Â Ç÷¡±×

lpOverlapped
[ÀÔ·Â]
WSAOVERLAPPED ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ ("³Í¿À¹ö·¦" ¼ÒÄÏ¿¡ ´ëÇؼ­´Â ¹«½ÃµË´Ï´Ù.)

lpCompletionRoutine
[ÀÔ·Â] Àü¼Û¿¬»êÀÌ ¿Ï·áµÇ¾úÀ» ¶§ È£ÃâµÇ´Â Àü¼Û¿Ï·á ·çƾ¿¡ ´ëÇÑ Æ÷ÀÎÅÍÀÔ´Ï´Ù. ("³Í¿À¹ö·¦" ¼ÒÄÏ¿¡¼­´Â ¹«½ÃµË´Ï´Ù.)

 

Remarks

WSASend ÇÔ¼ö´Â ±âÁ¸ÀÇ send ÇÔ¼öÀÇ ±â´ÉÀ» ¸ðµÎ ´Ù ¼öÇà Çϸ鼭, ¾Æ·¡ÀÇ µÎ°¡Áö Ç׸ñÀ» Ãß°¡ÀûÀ¸·Î Áö¿øÇÕ´Ï´Ù.

    1. Áߺ¹µÈ Àü¼Û ¿¬»êÀ» ¼öÇàÇϵµ·Ï Áߺ¹(overlapped)¼ÒÄÏÀ» °¡Áö°í ÀÛ¾÷ÇÒ ¼ö ÀÖ´Â ±â´É

    2. ¿©·¯°³ÀÇ Àü¼Û ¹öÆÛ¸¦ µÎ¾î Àü¼Û ÇÒ ¼ö ÀÖ´Â ±â´É

WSASend ÇÔ¼ö´Â s ¸Å°³º¯¼ö·Î ·Î ÁöÁ¤µÈ Á¢¼ÓÁöÇâÇü ¼ÒÄÏ¿¡¼­ ÇÑ °³ ¶Ç´Â ±× ÀÌ»óÀÇ µ¥ÀÌÅ͸¦ Àü¼Û ÇϱâÀ§Çؼ­ »ç¿ëÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ºñÁ¢¼Ó ÁöÇâÇü ¼ÒÄÏ(SOCK_DGRAM °ú °°Àº ¼ÒÄÏÀÌ°ÚÁÒ?) ¿¡¼­µµ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ÇÏÁö¸¸, ÀÌ·¸°Ô »ç¿ëÇÏ·Á ÇÏ´Â °æ¿ì¿¡, ¼ÒÄÏÀº connect ÇÔ¼ö³ª WSAConnect ÇÔ¼ö¿¡ ÀÇÇؼ­ »ó´ë¹æ ¾îµå·¹½º°¡ ÁöÁ¤µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù.

¿À¹ö·¦ ¼ÒÄÏ(WSASocket ÇÔ¼ö¸¦ WSA_FLAG_OVERLAPPED Ç÷¡±×¸¦ µÎ¾î »ý¼ºÇÑ ¼ÒÄÏ)Àº ¿À¹ö·¦ ÀÔ/Ãâ·ÂÀ» »ç¿ëÇÏ¿© Á¤º¸¸¦ Àü¼ÛÇÏ°Ô µË´Ï´Ù. ÇÏÁö¸¸, lpOverlapped ¿Í lpCompleteRoutine ¸Å°³º¯¼ö°¡ NULLÀÎ °æ¿ì ¼ÒÄÏÀº ³Í-¿À¹ö·¦ ¼ÒÄÏÀ¸·Î °£ÁֵǾî ó¸®µÇ°Ô µË´Ï´Ù.

Àü¼ÛÇϴµ¥ ÁöÁ¤µÈ ¹öÆÛ°¡ ´Ù »ç¿ëµÇ¾úÀ» ¶§ ¿Ï·á·çƾÀÌ È£ÃâµÇ°Å³ª, À̺¥Æ® °´Ã¼°¡ ¼ÂÆõǴ ¹æ½ÄÀ¸·Î ÀÛ¾÷ÀÌ ¿Ï·á µÇ¾ú´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ÀÛ¾÷ÀÌ ¹Ù·Î ¿Ï·áµÇÁö ¾Ê´Â °æ¿ì¿£ ¿Ï·á·çƾÀ̳ª, WSAGetOverlappedResult ÇÔ¼ö¿¡ ÀÇÇؼ­ ¸¶Áö¸· ¿Ï·á »óŸ¦ ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.

³Í-¿À¹ö·¦ ¼ÒÄÏ¿¡¼­´Â ¸¶Áö¸· µÎ ¸Å°³º¯¼ö(lpOverlapped, lpCompletetionRoutine)Àº ¹«½ÃµË´Ï´Ù. ±×¸®°í, WSASend ÇÔ¼ö´Â send ÇÔ¼ö¿Í °°Àº µ¿ÀÛÀ» Çϵµ·Ï »ç¿ëµÇ¾î Áý´Ï´Ù. µ¥ÀÌÅÍ´Â ÁöÁ¤µÈ ¹öÆ۷κÎÅÍ Àü¼Û¹öÆÛ·Î º¹»çµË´Ï´Ù. ¸¸¾à ¼ÒÄÏÀÌ ºñµ¿±â ¸ðµåÀÎ ½ºÆ®¸² ¼ÒÄÏÀÌ°í, Àü¼Û¹öÆÛ¿¡ ÃæºÐÇÑ °ø°£ÀÌ ³²¾ÆÀÖÁö ¾Ê´Ù¸é, WSASend ÇÔ¼ö´Â Àü¼ÛÇϴµ¥ »ç¿ëµÇ¾ú´ø ¹öÆÛ ¸¸Å­¸¸À» ¹Ýȯ ÇÒ °ÍÀÔ´Ï´Ù. ºí·ÏÅ· ¼ÒÄÏÀÇ °æ¿ì´Â Àü¼Û¹öÆÛ °ø°£ÀÌ ³²¾Æ¼­ ÁöÁ¤µÈ ¹öÆÛ¸¦ Àü¼Û¹öÆÛ·Î ´Ù º¹»ç ÇÒ ¶§ ±îÁö ºí·ÏÅ· µË´Ï´Ù.

lpBuffers ¸Å°³º¯¼ö¿¡ ÀÇÇؼ­ Æ÷ÀÎÆ®µÇ´Â WSABUF ±¸Á¶Ã¼ ¹è¿­Àº ÀϽÃÀûÀÎ °ø°£ÀÔ´Ï´Ù. Àü¼Û¿¬»êÀÌ ¿À¹ö·¦ 󸮸¦ ¿Ï·áÇß´Ù¸é, ÀÌ °ø°£Àº ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õÀÇ Ã¥ÀÓÀÔ´Ï´Ù. Áï, WSASend ÇÔ¼ö°¡ ¹ÝȯÇϱâÀü¿¡ ÀÌ WSABUF ±¸Á¶Ã¼¸¦ ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ ĸÃÄÇØ¾ß ÇÏ´Â °ÍÀÌÁÒ. ÀÌ·¯ÇÑ Ã³¸®¹æ½ÄÀº WSABUF ¹è¿­À» ½ºÅñâ¹ÝÀ¸·Î ÀÌ·ç¾îÁú ¼ö ÀÖµµ·Ï ÇÏ°Ô µË´Ï´Ù.

¸Þ½ÃÁö ÁöÇâÇü ¼ÒÄÏ(ºñÁ¢¼Ó ÁöÇâÇü ¼ÒÄÏ)ÀÇ °æ¿ì ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ¿¡¼­ Áö¿øÇÒ ¼ö ÀÖ´Â ¸Þ½ÃÁöÀÇ ÃÖ´ë Å©±â¸¦ ³ÑÁö ¾Êµµ·Ï Á¶½ÉÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÃÖ´ë°ªÀº SO_MAX_MSG_SIZE ¿É¼ÇÀ¸·Î ¾ò¾î³¾ ¼ö ÀÖÁÒ. ¸¸¾à Àü¼ÛÇÒ µ¥ÀÌÅÍ°¡ Àü¼ÛÇϱ⿡ ³Ê¹« Å«µ¥ÀÌÅͶó¸é, WSAEMSGSIZE ¶ó´Â ¿¡·¯¸¦ ¹Ýȯ ÇÏ°Ô µË´Ï´Ù. ±Û±¸... ¾Æ¹«·± µ¥ÀÌÅ͵µ Àü¼ÛµÇÁö ¾Ê°Ô µË´Ï´Ù.

Note : WSASend ÇÔ¼ö¸¦ ¼º°øÀûÀ¸·Î ¼öÇà Çß´Ù°í Çؼ­ µ¥ÀÌÅÍ°¡ ¼º°øÀûÀ¸·Î »ó´ë¹æ¿¡°Ô Àü¼ÛµÇ¾ú´Ù°í È®½Å ÇÒ ¼ö´Â ¾ø½À´Ï´Ù.

dwFlags ¸Å°³º¯¼ö´Â ÇÔ¼ö¸¦ È£ÃâÇßÀ» ¶§ ¾î¶»°Ô µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ °ÍÀÎÁö ¼¼ºÎÀûÀÎ ÇÔ¼öÀÇ ÇൿÀ» ¼³Á¤Çϴµ¥ »ç¿ëÇÏ´Â °ªÀÔ´Ï´Ù. Áï, ÀÌ ÇÔ¼öÀÇ µ¿ÀÛÀ» °áÁ¤ÇÏ´Â °ÍÀº ¼ÒÄÏ ¿É¼Ç°ú dwFlags ¸Å°³º¯¼ö¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. dwFlag ¸Å°³º¯¼ö¿¡ µé¾î°¡´Â °ªÀº ¾Æ·¡¿¡ Á¦½ÃÇÑ °ªµéÀ» OR ·Î ±¸¼ºÇÏ¿© ³Ñ°ÜÁÖ¸é µË´Ï´Ù.

Value Meaning
MSG_DONTROUTE µ¥ÀÌÅ͸¦ ¶ó¿ìÆÃÇϵµ·Ï ÇÏÁö ¾Êµµ·Ï ¸í½ÃÇÕ´Ï´Ù. À©µµÁî ¼ÒÄÏ ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ´Â ÀÌ Ç÷¡±×¸¦ ¹«½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
MSG_OOB SOCK_STREAMÀ¸·Î »ý¼ºÇÑ ¿¬°áÁöÇâÇü ¼ÒÄÏ¿¡¼­ out-of-band µ¥ÀÌÅ͸¦ Àü¼ÛÇϴµ¥ »ç¿ëµÇ´Â °ªÀÔ´Ï´Ù.
MSG_PARTIAL lpBuffers ¸Å°³º¯¼ö°¡ ºÎºÐÀûÀÎ ¸Þ½ÃÁö¸¸À» ´ãµµ·Ï ¸í½ÃÇÕ´Ï´Ù. ¸¸¾à ºÎºÐÀûÀÎ ¸Þ½ÃÁö Àü¼ÛÀ» Áö¿øÇÏÁö ¾Ê´Â °æ¿ì¿¡´Â WSAEOPNOTSUPP ¿¡·¯Äڵ带 ¹Ýȯ ÇÒ °ÍÀÔ´Ï´Ù.

 

Overlapped socket I/O

¿À¹ö·¦ ¿¬»êÀÌ ¹Ù·Î ¿Ï·á µÇ¾ú´Ù¸é, WSASend ÇÔ¼ö´Â 0 °ªÀ» ¹Ýȯ ÇÕ´Ï´Ù. ±×¸®°í, lpNumberOfBytesSent ¸Å°³º¯¼ö´Â Àü¼ÛµÈ ¹ÙÀÌÆ®ÀÇ ¼ö¸¦ Æ÷ÀÎÆ® ÇÕ´Ï´Ù. ¿À¹ö·¦ ¿¬»êÀÌ ¼º°øÀûÀ¸·Î ½ÃÀ۵ǾúÀ¸³ª, ³ªÁß¿¡ ¿Ï·áµÉ °ÍÀ̶ó¸é, WSASend ÇÔ¼ö´Â SOCKET_ERRORÀ» ¹ÝȯÇÏ°í, WSA_IO_PENDING À̶ó´Â ¿¡·¯Äڵ带 ¹ß»ýÇÒ °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ lpNumberOfBytesSent ¸Å°³º¯¼ö´Â Àü¼ÛµÈ °ªÀ» Æ÷ÀÎÆ® ÇÏÁö ¾Ê½À´Ï´Ù. ¿À¹ö·¦ ¿¬»êÀÌ ¿Ï·áµÇ¾úÀ» ¶§, Àü¼ÛµÈ µ¥ÀÌÅÍÀÇ ¼öÄ¡´Â ¿Ï·á·çƾÀÇ cbTransferred ¸Å°³º¯¼ö³ª WSAGetOverlappedResult ÇÔ¼öÀÇ lpcbTransfer ¸Å°³º¯¼ö¸¦ °¡Áö°í ¾Ë ¼ö ÀÖ½À´Ï´Ù.

WSASend ÇÔ¼ö´Â ÀÌÀü¿¡ È£ÃâÇÑ WSARecv, WSARecvFrom, WSASend, WSASendTo ÇÔ¼öµéÀÇ ¿Ï·áÇÔ¼ö ³»ºÎ¿¡¼­ È£ÃâµÉ ¼ö ÀÖ½À´Ï´Ù.

¸¸¾à ¿©·¯°³ÀÇ I/O ¿¬»êÀÌ µ¿½Ã¿¡ ÀϾ ´Ù¸é, °¢°¢ÀÇ ¿¬»êÀº ¼­·Î´Ù¸¥ WSAOVERLAPPED ±¸Á¶Ã¼¸¦ ÂüÁ¶ÇØ¾ß ÇÕ´Ï´Ù.

lpCompletionRoutine ¸Å°³º¯¼ö°¡ NULLÀ̶ó¸é, lpOverlapped ¸Å°³º¯¼öÀÇ hEvent Çʵå´Â ¿À¹ö·¦ ¿¬»êÀÌ ¿Ï·á µÇ¾úÀ» ¶§ ½ÅÈ£¸¦ ¹Þ°Ô µË´Ï´Ù. ¾îÇ÷¹ÄÉÀ̼ÇÀº WSAWaitForMultipleEvents ³ª WSAGetOverlappedResult ÇÔ¼ö¸¦ »ç¿ëÇؼ­ À̺¥Æ® °´Ã¼¿¡ ´ëÇؼ­ ´ë±âÇϰųª Æú¸µÇÒ ¼ö ÀÖ½À´Ï´Ù.

lpCompletionRoutine ¸Å°³º¯¼ö°¡ NULLÀÌ ¾Æ´Ï À̶ó¸é, hEvent Çʵå´Â ¹«½ÃµÇ°í, ¿Ï·á·çƾÀ» À§ÇÑ È帧Á¤º¸(context information)¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ·¸°Ô NULL ÀÌ ¾Æ´Ñ lpCompletionRoutine À» ³Ñ°ÜÁÖ´Â ÄÝ·¯¿Í ³ªÁß¿¡ °°Àº ¿À¹ö·¦ I/O ¿äûÀ» À§ÇØ È£ÃâµÇ´Â WSAGetOverlappedResult ÇÔ¼ö´Â WSAGetOverlappedResult ÇÔ¼ö¸¦ TRUE·Î È£ÃâÇϱâÀ§ÇÑ fWait ¸Ê°³º¯¼ö¸¦ ¼ÂÆÃÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ hEvent Çʵ带 »ç¿ëÇϴ Ưº°ÇÑ ¹æ¹ýÀº Á¤ÀǵÇÁö ¾Ê½À´Ï´Ù. ±×¸®°í, hEvent Çʵ带 »ç¿ëÇØ ´ë±âÇÏ·Á Çϸé, ¿¹ÃøÇÒ ¼ö ¾ø´Â °á°ú¸¦ °¡Á® ¿Ã ¼öµµ ÀÖ½À´Ï´Ù.

¿Ï·á·çƾÀº Win32 ÆÄÀÏ I/O ¿Ï·á·çƾ°ú °°Àº ±ÔÄ¢À» µû¸£°Ô µË´Ï´Ù. ¿Ï·á·çƾÀº WSAWaitForMultipleEvents ÇÔ¼ö°¡ fAlertable ¸Å°³º¯¼ö¸¦ TRUE·Î ¼³Á¤ÇÏ¿© È£ÃâµÉ ¶§¿Í °°ÀÌ ÀÛ¾÷¾²·¹µå°¡ ¹ÝÀÀÇÒ¼öÀÖ´Â(alertable) ´ë±â »óÅ¿¡ ÀÖÀ» ¶§ ±îÁö È£ÃâµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

¿Ï·á·çƾÀÇ ÇÁ·ÎÅäŸÀÔÀº ¾Æ·¡¿Í °°½À´Ï´Ù.

void CALLBACK CompletionROUTINE(
        IN DWORD  
dwError,
        IN DWORD  
cbTransferred,
        IN LPWSAOVERLAPPED  
lpOverlapped,
        IN DWORD  
dwFlags
);

CompletionRoutine ÇÔ¼ö´Â ¾îÇø®ÄÉÀ̼Ç-Á¤ÀÇ ¶Ç´Â ¶óÀ̺귯¸® Á¤ÀÇ ÇÔ¼ö À̸§À¸·Î »ç¿ëµË´Ï´Ù. dwError ¸Å°³º¯¼ö´Â lpOverlapped ¿¡ ÀÇÇؼ­ Ç¥ÇöµÇ´Â ¿À¹ö·¦ ¿¬»ê¿¡ ´ëÇÑ ¿Ï·áÀÇ »óŸ¦ °¡¸®Åµ´Ï´Ù. cbTransferred ¸Å°³º¯¼ö´Â Àü¼ÛÇÑ µ¥ÀÌÅÍÀÇ ¹ÙÀÌÆ® ¼ö¸¦ ³ªÅ¸³À´Ï´Ù. ÀϹÝÀûÀ¸·Î dwFlags ¸Å°³º¯¼ö´Â Àß »ç¿ëµÇÁö ¾Ê½À´Ï´Ù. ÀÌ°ªÀº 0 °ªÀ» °¡Áö°Ô µÉ °ÍÀÔ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ¹Ýȯ°ªÀÌ ¾ø½À´Ï´Ù.

 

Return Values

¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê°í, Àü¼Û¿¬»êÀÌ ¹Ù·Î ¿Ï·áµÇ¾ú´Ù¸é, WSASend ÇÔ¼ö´Â 0À» ¹Ýȯ ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ ¿Ï·á·çƾÀº È£Ãâ¾²·¹µå°¡ ¹ÝÀÀÇÒ ¼ö ÀÖ´Â(alertable) »óÅ·ΠȣÃâµÇ±â À§ÇÑ Áغñ¸¦ ÀÌ¹Ì °°Ãß¾ú´Ù°í º¼ ¼ö ÀÖ½À´Ï´Ù. ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ì SOCKET_ERROR °ªÀÌ ¹Ýȯ µË´Ï´Ù. ±×¸®°í, WSAGetLastError ÇÔ¼ö¸¦ È£ÃâÇØ Æ¯Á¤ÇÑ ¿¡·¯Äڵ带 ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.

 

Error Codes

WSANOTINITIALISED

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

WSAENETDOWN

³×Æ®¿÷ ¼­ºê ½Ã½ºÅÛ¿¡ ¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.

WSAEACCES ÁöÁ¤µÈ ¾îµå·¹½º´Â ºê·Îµåij½ºÆà ¾îµå·¹½º Àε¥, ÀûÀýÇÑ Ç÷¡±×°¡ »ç¿ëµÇÁö ¾Ê¾Ò½À´Ï´Ù.
WSAEINTR ºí·°Å· À©¼Ó v1.1 ÀÌ WSACancelBlockingCall ÇÔ¼ö¿¡¼­ Ãë¼ÒµÇ¾ú½À´Ï´Ù
WSAEINPROGRESS

ºí·°Å· À©¼Ó v1.1 ÀÌ ÇöÀç ÁøÇà ÁßÀÔ´Ï´Ù.

WSAEFAULT lpBuffers, lpNumberOfBytesSent, lpOverlapped, lpCompletionRoutine ¸Å°³º¯¼ö°¡ ¿Ã¹Ù¸¥ ¾îµå·¹½º¸¦ ³Ñ±âÁö ¾Ê¾Ò½À´Ï´Ù.
WSAENETRESET ÀÛ¾÷ÀÌ ÁøÇàµÇ°í ÀÖ´Â µµÁß¿¡ ¿¡·¯»óȲÀÌ °ËÃâµÇ¾î¼­ Á¢¼ÓÀÌ ÇØÁ¦ µÇ¾ú½À´Ï´Ù.
WSAENOBUFS ¹öÆÛ »ç¿ëÁß µ¥µå¶ô¿¡ °É·È½À´Ï´Ù.
WSAENOTCONN ÁöÁ¤µÈ ¼ÒÄÏÀÌ Á¢¼ÓµÈ ¼ÒÄÏÀÌ ¾Æ´Õ´Ï´Ù.
WSAENOTSOCK ÁöÁ¤ÇÑ ¼ÒÄÏ ±â¼úÀÚ°¡ ¼ÒÄϱâ¼úÀÚ°¡ ¾Æ´Õ´Ï´Ù.
WSAEOPNOTSUPP MSG_OOB Ç÷¡±×°¡ ÁöÁ¤µÇ¾úÀ¸³ª, ¼ÒÄÏÀÌ SOCK_STREAM °ú °°Àº ŸÀÔÀÇ ½ºÆ®¸² ÇüÅÂÀÇ ¼ÒÄÏÀÌ ¾Æ´Ñ °æ¿ì À̰ųª, ¼ÒÄÏÀÌ out-of-band µ¥ÀÌÅ͸¦ Áö¿øÇÏÁö ¾Ê´Â ÇüÅÂÀÇ ¼ÒÄÏÀÔ´Ï´Ù. ±×¸®°í, MSG_PARTIAL ÇüÅ°¡ Áö¿øµÇÁö ¾Ê°Å³ª, ¼ÒÄÏÀÌ ´Ü¹æÇâ À̾ µ¥ÀÌÅÍ ¼ö½Å ¿¬»ê¸¸À» Áö¿øÇÏ´Â ÇüÅÂÀÔ´Ï´Ù.
WSAESHUTDOWN ¼ÒÄÏÀÌ ¼Ë´Ù¿î µÇ¾ú½À´Ï´Ù. ¼ÒÄÏ¿¡ ´ëÇؼ­ shutdown ÇÔ¼ö¸¦ È£ÃâÇÑ ÈÄ¿¡´Â WSASend ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
WSAEWOULDBLOCK ¿À¹ö·¦ ¼ÒÄÏ      : ³Ê¹«¸¹Àº ¿À¹ö·¦ I/O°¡ ¹ß»ýÇß½À´Ï´Ù.
³Í-¿À¹ö·¦ ¼ÒÄÏ : ¼ÒÄÏÀÌ ºñµ¿±â ¼ÒÄÏÀÏ °æ¿ì Àü¼Û ¿¬»êÀÌ ¹Ù·Î ¿Ï·áµÉ ¼ö ¾ø½À´Ï´Ù. ( ¾ðÁ¨°¡´Â ¿Ï·á°¡ µÉ °ÍÀ̹ǷΠȮ½ÇÇÑ ¿¡·¯»óȲÀ̶ó°í º¼ ¼ö ¾øÁÒ.)
WSAEMSGSIZE ¼ÒÄÏÀÌ ¸Þ½ÃÁöÁöÇâ ¼ÒÄÏ(SOCK_DGRAM)À϶§, Àü¼ÛÇÏ·Á´Â µ¥ÀÌÅÍÀÇ Å©±â°¡ Áö¿øµÇ´Â ÃÖ´ë Å©±âº¸´Ù ´õ Å®´Ï´Ù.
WSAEINVAL ¼ÒÄÏÀÌ bind ÇÔ¼ö·Î ¹ÙÀÎµå µÇÁö ¾Ê¾Ò°Å³ª, ¼ÒÄÏÀÌ ¿À¹ö·¦ Ç÷¡±×¸¦ »ç¿ëÇؼ­ »ý¼ºµÇÁö ¾Ê¾Ò½À´Ï´Ù.
WSAECONNABORTED °¡»ó ¿¬°á¸ÁÀÌ Å¸ÀӾƿôÀ̳ª ±×¿Ü ´Ù¸¥ ¿¡·¯»óȲÀ¸·Î ²÷°Ü ¹ö·È½À´Ï´Ù.
WSAECONNRESET °¡»ó ¿¬°á¸ÁÀÌ »ó´ë¹æ¿¡ ÀÇÇؼ­ ¸®¼ÂµÇ¾ú½À´Ï´Ù.
WSA_IO_PENDING ¿À¹ö·¦ ¿¬»êÀÌ ¼º°øÀûÀ¸·Î ½ÃÀ۵Ǿú°í, ÀÛ¾÷ÀÌ Àá½Ã ÈÄ¿¡ ¿Ï·áµÉ ¿¹Á¤ÀÔ´Ï´Ù.
WSA_OPERATION_ABORTED ¿À¹ö·¦ ¿¬»êÀÌ ¼ÒÄÏÀÇ ´ÝÈû ¶§¹®¿¡ Ãë¼ÒµÇ¾ú°Å³ª, SO_FLUSH Äĸǵå·Î WSAIoctl ÇÔ¼ö¸¦ ¼öÇàÇؼ­ ¿¬»êÀÌ µµÁß¿¡ Ãë¼Ò µÇ¾ú½À´Ï´Ù.

 

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, WSACloseEvent, WSACreateEvent, WSAGetOverlappedResult, WSASocket, WSAWaitForMultipleEvents