WSASocket

WSASocket ÇÔ¼ö´Â Æ®·£½ºÆ÷Æ® ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ¿¡ ¹ÙÀεåµÈ ¼ÒÄÏÀ» »ý¼ºÇÕ´Ï´Ù. ºÎ¼öÀûÀÎ ±â´ÉÀ¸·Î, ¼ÒÄϱ׷쿡 ÇÕÃļ­(join) »ý¼ºÇϴµ¥ »ç¿ëÇϱ⵵ ÇÕ´Ï´Ù.

SOCKET WSASocket (
        int  
af,
        int  
type,
        int  
protocol,
        LPWSAPROTOCOL_INFO  
lpProtocolInfo,
        GROUP  
g,
        DWORD  
dwFlags
);

 

Parameters

af
[ÀÔ·Â] ¾îµå·¹½º ÁýÇÕ(family)¸¦ ¸í½ÃÇÕ´Ï´Ù.

type
[ÀÔ·Â] »õ·ÎÀÌ »ý¼ºµÉ ¼ÒÄÏ¿¡ ´ëÇÑ ÇüÅÂ(type)À» ÁöÁ¤ÇÕ´Ï´Ù.

protocol
[ÀÔ·Â] ¾îµå·¹½º ÁýÇÕ(family)À¸·Î ÁöÁ¤µÈ ¼ÒÄÏ¿¡¼­ »ç¿ëµÇ´Â ƯÁ¤ÇÑ ÇÁ·ÎÅäÄÝ

lpProtocolInfo
[ÀÔ·Â] »ý¼ºµÇ´Â ¼ÒÄÏÀÇ Æ¯¼ºÀ» Á¤ÀÇÇÑ 
WSAPROTOCOL_INFO ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅÍ

g
[ÀÔ·Â] ¼ÒÄϱ׷ìÀÇ ½Äº°ÀÚ ·Î½á, ¼ÒÄϱ׷쿡 ´ëÇؼ­ ³ªÁß¿¡ »ç¿ëÇϱâ À§ÇØ ¿¹¾àµÈ ¸Å°³º¯¼öÀÔ´Ï´Ù.

dwFlags
[ÀÔ·Â] ¼ÒÄÏ ¼Ó¼ºÀ» ÁöÁ¤ÇÏ´Â Ç÷¡±×

 

Remarks

WSASocket ÇÔ¼ö´Â ¼ÒÄÏ ±â¼úÀÚ¸¦ ¾ò¾î³»°í, °ü·ÃµÈ ¸®¼Ò½º¸¦ ÇÒ´ç¹Þ´Â ÇÔ¼öÀÔ´Ï´Ù. ±âº» ¼³Á¤Ä¡·Î, ¼ÒÄÏÀº ¿À¹ö·¦ ¼Ó¼ºÀ» °¡ÁöÁö ¾Ê½À´Ï´Ù. ¸¸¾à lpProtocolInfo°¡ NULL À̶ó¸é, WS2_32.DLLÀº óÀ½ 3°³ ¸Å°³º¯¼ö(af, type, protocol)¸¦ ¼ÒÄÏÀÇ Æ¯¼ºÀ» Á¤ÀÇÇϴµ¥ »ç¿ëÇÏ°Ô µË´Ï´Ù. ¹Ý¸é, lpProtocolInfo ¸Å°³º¯¼ö°¡ NULL ÀÌ ¾Æ´Ï¶ó¸é, ¼ÒÄÏÀº WSAPROTOCOL_INFO ±¸Á¶Ã¼ÀÇ ³»¿ëÀ» ¹ÙÅÁÀ¸·Î ÇÏ¿© ¼ÒÄÏÀÇ Æ¯¼ºÀ» Á¤ÀÇ ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, ¾îÇø®ÄÉÀ̼ÇÀº FROM_PROTOCOL_INFO »ó¼ö°ªÀ¸·Î af, type, protocol ¸Å°³º¯¼ö¸¦ ³Ñ°ÜÁÙ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¹æ¹ýÀº WSAPROTOCOL_INFO ±¸Á¶Ã¼·ÎºÎÅÍ(iAddressFamily, iSocket, iProtocol) ºÎÇյǴ °ªÀÌ »ç¿ëµÇµµ·Ï °¡Á¤µÇ¾î ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù.

ÇÁ·ÎÅäÄÝ°ú af, type, protocol ¿¡ ±â¹ÝÀ» µÐ ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ¸¦ ¼±ÅÃÇÒ ¶§, ÀÌ ÇÔ¼öÀÇ ÇÁ·Î½ÃÁ®´Â ÇÁ·ÎÅäÄÝ ·¹À̾ ¾Æ´Ñ ±âº» ÇÁ·ÎÅäÄÝÀ̳ª ÇÁ·ÎÅäÄÝ Ã¼ÀÎ ¸¸À» ¼±Åà ÇÒ °ÍÀÔ´Ï´Ù. ¾ð-üÀÎµÈ ÇÁ·ÎÅäÄÝ ·¹À̾î´Â type À̳ª af µÑÁßÇϳª¿¡ ±â¹ÝÀ» µÐ "partial matches"¸¦ °í·ÁÇÏÁö ¾Ê½À´Ï´Ù. °£´ÜÈ÷ ¸»ÇÏÀÚ¸ç, ÀûÀýÇÑ ÇÁ·ÎÅäÄÝÀÌ ¹ß°ßµÇÁö ¾Ê¾ÒÀ» ¶§ WSAEAFNOSUPPORT ³ª WSAEPROTONOSUPPORT ¿¡·¯Äڵ带 ¹ß»ýÇÏÁö ¾Ê´Â ´Ù´Â ¸»ÀÔ´Ï´Ù.

¸Å°³º¯¼ö g´Â ¼ÒÄϱ׷쿡 ´ëÇÑ ÀûÀýÇÑ ¾×¼ÇÀ» ¾Ë·ÁÁÖ±â À§ÇØ »ç¿ëµË´Ï´Ù.
  1. g ¸Å°³º¯¼ö°¡ Á¸ÀçÇÏ´Â ¼ÒÄÏ ±×·ì ¾ÆÀ̵ð ¶ó¸é, »õ·Î¿î ¼ÒÄÏÀº ±×·ì¿¡ ÇÕÃÄÁý´Ï´Ù.

  2. g ¸Å°³º¯¼ö°¡ SG_UNCONSTRAINED_GROUP À̶ó¸é, °­¿ä¼ºÀÌ ¾ø´Â ¼ÒÄÏ ±×·ì(unconstrained socket group)À» »ý¼ºÇÏ°í, »õ·Î¿î ¼ÒÄÏÀ» °¡Áö°Ô µË´Ï´Ù.

  3. g ¸Å°³º¯¼ö°¡ SG_CONSTRAINED_GROUP À̶ó¸é, °­¿ä¼ºÀÌ ÀÖ´Â ¼ÒÄÏ ±×·ì(constrained socket group)À» »ý¼ºÇÏ°í, »õ·Î¿î ¼ÒÄÏÀ» °¡Áö°Ô µË´Ï´Ù.

  4. g ¸Å°³º¯¼ö°¡ 0 À̶ó¸é, ±×·ì¿¬»ê(group operation)Àº ¾Æ¹«°Íµµ ¼öÇàµÇÁö ¾Ê½À´Ï´Ù.

°­¿ä¼ºÀÌ ¾ø´Â ±×·ì¿¡¼­, ƯÁ¤ÇÑ ¼ÒÄÏÀÇ ÁýÇÕÀº ´ÜÀÏ ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ¿¡ ÀÇÇؼ­ Áö¿øµÇ´Â °Íó·³ ÇÔ²² Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù. °­¿ä¼ºÀÌ ÀÖ´Â ¼ÒÄÏ ±×·ìÀº Á¢¼Ó ÁöÇâÇü ¼ÒÄϸ¸À¸·Î ±¸¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í, ¸ðµç ±×·ìÇÎµÈ ¼ÒÄϵéÀÇ Á¢¼ÓÀº °°Àº È£½ºÆ®¿¡ °°Àº ¾îµå·¹½º·Î Á¢¼ÓµÇµµ·Ï ¿ä±¸µË´Ï´Ù. »õ·Î »ý¼ºµÈ ¼ÒÄÏ ±×·ì¿¡ ´ëÇؼ­, »õ·Î¿î ±×·ì ¾ÆÀ̵ð´Â SO_GROUP_ID ¿É¼ÇÀ¸·Î getsockopt ÇÔ¼ö¸¦ È£ÃâÇؼ­ ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù. ¼ÒÄÏ ±×·ì ¾ÆÀ̵ð´Â ÁÖ¾îÁø ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ¿¡ ´ëÇÑ ¸ðµç ÇÁ·Î¼¼½º¿¡¼­ À¯ÀÏÇÑ °ªÀÔ´Ï´Ù.

dwFlags ¸Å°³º¯¼ö´Â ¾Æ·¡ÀÇ °ªµéÀ» OR ¿¬»êÇؼ­ ÀÌ·ç¾îÁø °ªÀ» »ç¿ëÇÏ¿© ¼ÒÄÏÀÇ ¼Ó¼ºÀ» ¸í½ÃÇϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Flag

Meaning

WSA_FLAG_OVERLAPPED

ÀÌ Ç÷¡±×¸¦ »ç¿ëÇϸé, ¿À¹ö·¦ ¼ÒÄÏÀ» »ý¼ºÇÏ°Ô µË´Ï´Ù. ¿À¹ö·¦ ¼ÒÄÏÀº ¿À¹ö·¦ I/O ¿ÀÆÛ·¹À̼ÇÀ» À§ÇÏ¿© WSASend, WSASendTo, WSARecv, WSARecvFrom, WSAIoctl ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¿À¹ö·¦ ¿¬»êÀ» ´Ù·ç´Â ÇÔ¼öµéÀº ¿À¹ö·¦°ú °ü·ÃµÈ ¸Å°³º¯¼ö¸¦ NULL·Î ÁöÁ¤ÇÔÀ¸·Î½á ³Í-¿À¹ö·¦ ¼ÒÄÏÀ¸·Î »ç¿ë ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

WSA_FLAG_MULTIPOINT_C_ROOT

»ý¼ºµÈ ¼ÒÄÏÀÌ ¸ÖƼ Æ÷ÀÎÆ® ¼¼¼Ç¿¡¼­ c_root°¡ µÉ °ÍÀ̶ó´Â °ÍÀ» ¾Ë·ÁÁÖ´Â Ç÷¡±×ÀÔ´Ï´Ù.

WSA_FLAG_MULTIPOINT_C_LEAF

»ý¼ºµÈ ¼ÒÄÏÀÌ ¸ÖƼ ij½ºÆ® ¼¼¼Ç¿¡¼­ c_leaf°¡ µÉ °ÍÀ̶ó°í ¾Ë·ÁÁÖ´Â Ç÷¡±× ÀÔ´Ï´Ù.

WSA_FLAG_MULTIPOINT_D_ROOT

»ý¼ºµÈ ¼ÒÄÏÀÌ ¸ÖƼ Æ÷ÀÎÆ® ¼¼¼Ç¿¡¼­ d_root °¡ µÉ °ÍÀ̶ó°í ¾Ë·ÁÁÖ´Â Ç÷¡±× ÀÔ´Ï´Ù.

WSA_FLAG_MULTIPOINT_D_LEAF

»ý¼ºµÈ ¼ÒÄÏÀÌ ¸ÖƼÆ÷ÀÎÆ® ¼¼¼Ç¿¡¼­ d_leaf°¡ µÉ °ÍÀ̶ó°í ¾Ë·ÁÁÖ´Â Ç÷¡±× ÀÔ´Ï´Ù.

 

Return Values

¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÀ¸¸é, WSASocket ÇÔ¼ö´Â »õ·Î »ý¼ºµÈ ¼ÒÄÏÀ» ÂüÁ¶ÇÏ´Â ±â¼úÀÚ¸¦ ¹Ýȯ ÇÕ´Ï´Ù. ¹Ý¸é, ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ì´Â, INVALID_SOCKET ÀÌ ¹Ýȯ µË´Ï´Ù. ±×¸®±¸, WSAGetLastError ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ƯÁ¤ÇÑ ¿¡·¯Äڵ带 ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù.

 

Error Codes

WSANOTINITIALISED

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

WSAENETDOWN

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

WSAEAFNOSUPPORT

ÁöÁ¤µÈ ¾îµå·¹½º ü°è(family)°¡ Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

WSAEINPROGRESS

ºí·°Å· À©¼Ó v1.1 ÀÌ ÇöÀç ÁøÇà ÁßÀ̰ųª, ¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ Äݹé ÇÔ¼ö¸¦ ¿©ÀüÈ÷ ó¸®ÇÏ°í ÀÖ½À´Ï´Ù.

WSAEMFILE

»ç¿ëÇÒ ¼ö ÀÖ´Â ¼ÒÄϱâ¼úÀÚ°¡ ¹Ù´Ú ³ª À־ ¼ÒÄÏÀ» »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù.

WSAENOBUFS

»ç¿ëÇÒ ¼ö ÀÖ´Â ¹öÆÛ°¡ ¹Ù´Ú ³ª À־ ¼ÒÄÏÀ» »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù.

WSAEPROTONOSUPPORT

ÁöÁ¤µÈ ÇÁ·ÎÅäÄÝÀÌ Áö¿øµÇÁö ¾Ê´Â Çü½ÄÀÔ´Ï´Ù.

WSAEPROTOTYPE

ÁöÁ¤µÈ ÇÁ·ÎÅäÄÝÀÌ À߸øµÇ¾ú°Å³ª ÀÌ ¼ÒÄÏ¿¡ ´ëÇؼ­ À߸øµÈ Çü½ÄÀÔ´Ï´Ù.

WSAESOCKTNOSUPPORT

ÁöÁ¤µÈ ¼ÒÄÏ Å¸ÀÔÀÌ ÁöÁ¤ÇÑ ¾îµå·¹½º ü°è¿¡¼­ Áö¿øµÇÁö ¾Ê´Â Çü½ÄÀÔ´Ï´Ù.

WSAEINVAL

¸Å°³º¯¼ö g °¡ ¿Ã¹Ù¸¥ °ªÀÌ ¾Æ´Õ´Ï´Ù.

WSAEFAULT

lpProtocolInfo ¸Å°³º¯¼ö°¡ ¿Ã¹Ù¸¦ °ªÀÌ ¾Æ´Õ´Ï´Ù.

WSAINVALIDPROVIDER

¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ 2.2 ¹öÀü°ú ´Ù¸¥ ¹öÀüÀ» ¹Ýȯ Çß½À´Ï´Ù.

WSAINVALIDPROCTABLE

¼­ºñ½º ÇÁ·Î¹ÙÀÌ´õ°¡ È¿·ÂÀÌ ¾ø°Å³ª ¿Ï·áÇÒ ¼ö ¾ø´Â ÇÁ·Î½ÃÁ® Å×À̺íÀ» ¹ÝȯÇß½À´Ï´Ù.

 

QuickInfo

  Windows NT : »ç¿ë°¡´É
  Windows : »ç¿ë°¡´É
  
Windows CE : Áö¿øÇÏÁö ¾ÊÀ½
  
Header :
          Win32 : winsock.h
          Win32-II : winsock2.h
  Import Library :
          Win32 : wsock32.lib
          Win32-II : ws2_32.lib

See Also

overview, accept, bind, connect, getsockname, getsockopt, ioctlsocket, listen, recv, recvfrom, select, send, sendto, setsockopt, shutdown