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