connect

connect ÇÔ¼ö´Â ÁöÁ¤µÈ ¼ÒÄÏÀ» ÁöÁ¤µÈ ¿ø°ÝÁö·Î Á¢¼ÓÀ» ÀÌ·ç´Â ÇÔ¼öÀÔ´Ï´Ù.

int connect (
        SOCKET
s,
        const struct sockaddr FAR*
name,
        int
namelen
);

 

Parameters

s
[ÀÔ·Â] Á¢¼ÓµÇÁö ¾ÊÀº ¼ÒÄÏÀ» ½Äº°ÇÏ´Â ±â¼úÀÚ(descriptor).

name
[ÀÔ·Â] ¾îµð·Î Á¢¼ÓÇÒ °ÍÀÎÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ´ãÀº
SOCKADDR ±¸Á¶Ã¼

namelen
[ÀÔ·Â]
name ¸Å°³º¯¼öÀÇ Å©±â

Remarks

connect ÇÔ¼ö´Â ¸í½ÃµÈ ¸ñÀû È£½ºÆ®·ÎÀÇ Á¢¼ÓÀ» ÀÌ·ç´Âµ¥ »ç¿ëµÇ´Â ÇÔ¼öÀÔ´Ï´Ù. ¸¸¾à SOCKET s ¸Å°³º¯¼ö°¡ bindµÇÁö ¾ÊÀº »óŶó¸é, À©µµ¿ìÁî ¼ÒÄÏ ½Ã½ºÅÛÀº ÀÎÅÍÆäÀ̽º ¾îµå·¹½º¿Í Æ÷Æ®¹øÈ£¸¦ ¼ÒÄÏ¿¡ ¹­À»(bind) °ÍÀÔ´Ï´Ù. ÀÌ´Â bind ÇÔ¼ö°¡ ÀÎÅÍÆäÀ̽º ¾îµå·¹½º¿Í Æ÷Æ®¹øÈ£¸¦ °¢°¢ INADDR_ANY ¿Í 0 À¸·Î ÁöÁ¤ÇÏ¿© ¼ÒÄÏ¿¡¼­ È£ÃâµÈ °Í°ú À¯»çÇÕ´Ï´Ù.

Á¢¼Ó ÁöÇâÇü ¼ÒÄÏ(connection-oriented sockets : SOCK_STREAM)ÀÇ °æ¿ì Á¢¼ÓÀº name (SOCKADDR ±¸Á¶Ã¼¸¦ Âü°íÇϼ¼¿ä.) ¸Å°³º¯¼ö¿¡ ÁöÁ¤µÈ ´Ù¸¥ È£½ºÆ®·Î ½ÇÁ¦ÀûÀÎ ¿¬°áÀÌ ¼³Á¤µË´Ï´Ù.. ¼ÒÄÏÀÌ ÀÌ ÇÔ¼ö¸¦ ¼º°øÀûÀ¸·Î È£ÃâÇßÀ»¶§ ¼ÒÄÏÀº µ¥ÀÌÅ͸¦ Àü¼ÛÇÏ°í ¼ö½ÅÇÒ Áغñ°¡ µÇ¾îÀÖ°Ô µË´Ï´Ù. ¸¸¾à ÁöÁ¤µÈ name ¸Å°³º¯¼öÀÇ ±¸Á¶Ã¼ÀÇ ÁÖ¼Ò ¸â¹ö°¡ ¸ðµÎ 0 À¸·Î ¼ÂÆõǾî ÀÖ´Ù¸é, connect ÇÔ¼ö´Â WSAEADDRNOTAVAIL À̶ó´Â ¿¡·¯¸¦ ¸®ÅÏÇÒ °ÍÀÔ´Ï´Ù. ÀÌ¹Ì ¿î¿ëÁßÀÎ Á¢¼ÓµÈ ¼ÒÄÏÀ» ´Ù½Ã Á¢¼ÓÇÏ·Á ÇÒ ¶§´Â WSAEISCONN ¿¡·¯ Äڵ带 ¹ß»ýÇϸç, Á¢¼Ó¿¡ ½ÇÆÐÇÏ°Ô µË´Ï´Ù.

Á¢¼Ó ÁöÇâÇüÀÎ ºñµ¿±â ¼ÒÄÏ(connection-oriented nonblocking sockets)ÀÇ °æ¿ì Á¾Á¾ ¹Ù·Î Á¢¼ÓÀÌ ÀÌ·ç¾î ÁöÁö ¾Ê½À´Ï´Ù. ÀÌ·±°æ¿ì¿¡ connect ÇÔ¼ö´Â WSAEWOULDBLOCK ¿¡·¯Äڵ带 ¹ß»ýÇÏ°Ô µË´Ï´Ù. ÇÏÁö¸¸, Á¢¼ÓÇÏ´Â °úÁ¤Àº °è¼Ó ¼öÇàµÇ¹Ç·Î ÀÌ·± »óȲÀ» µÎ°í Á¢¼Ó¿¡·¯ ¶ó°í º¼¼ö´Â ¾ø½À´Ï´Ù. connect ¿¡ ´ëÇÑ ¼º°ø ¶Ç´Â ½ÇÆÐÀÇ °á°ú¸¦ ¾Ë°Ô µÇ¾úÀ»¶§, ¼ÒÄÏÀº ¾î¶²¹æ¹ýÀ¸·Î ÅëÁö¸Þ¼¼Áö¸¦ ¹ÞÀ» °ÍÀΰ¡¿¡ ´ëÇØ º¸°íµË´Ï´Ù. ¸¸¾à Ŭ¶óÀ̾ðÆ®°¡ select ÇÔ¼ö¸¦ »ç¿ëÇß´Ù¸é, ¼º°øÀº writefds set À̶ó°í ¾Ë·ÁÁö¸ç, ½ÇÆÐ ÇßÀ»°æ¿ì´Â exceptfds set À̶ó°í ¾Ë·ÁÁý´Ï´Ù. ¸¸¾à Ŭ¶óÀ̾ðÆ®°¡ WSAAsyncSelect ÇÔ¼ö³ª WSAEventSelect ÇÔ¼ö¸¦ »ç¿ëÇß´Ù¸é, Á¢¼Ó¿¡ ´ëÇÑ ÅëÁö¸Þ¼¼Áö´Â FD_CONNECT ·Î ¾Ë·ÁÁý´Ï´Ù. ±×¸®°í, FD_CONNECT ¿Í °ü·ÃµÈ ¿¡·¯ÄÚµå´Â ¼º°øÇ߰ųª Ưº°ÇÑ ÀÌÀ¯·Î ½ÇÆÐ Çß°Ç°£¿¡ ¹ß»ýÇÕ´Ï´Ù.

ºñÁ¢¼Ó ÁöÇâÇü ¼ÒÄÏ(connectionless socket : SOCK_DGRAM)ÀÇ °æ¿ì connect ÇÔ¼ö¿¡ ÀÇÇؼ­ ¼öÇàµÇ´Â ¿¬»êÀº ´ÜÁö ³ªÁß¿¡ »ç¿ëµÉ send/WSASend, recv/WSARecv ÇÔ¼ö¿¡ ´ëÇÑ ±âº» ¸ñÀû ÁÖ¼Ò¸¦ È®¸³ ÇϱâÀ§ÇØ »ç¿ëµË´Ï´Ù. name ¸Å°³º¯¼öÁß¿¡ ÁּҺκÐÀÌ ¸ðµÎ 0À¸·Î ¼³Á¤µÇ¾î ÀÖ´Ù¸é, ¼ÒÄÏÀº "dis-connected" µÉ °ÍÀÔ´Ï´Ù. µû¶ó¼­ ±âº» ¿ø°ÝÁö ÁÖ¼Ò°¡ °áÁ¤µÇÁö ¾Ê¾ÒÀ¸¹Ç·Î ÀÌ·± °æ¿ì¿¡ send/WSASend, recv/WSARecv ÇÔ¼ö¸¦ »ç¿ëÇϸé, WSAENOTCONN À̶ó´Â ¿¡·¯Äڵ带 ¸®ÅÏÇÒ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸, ÀÌ·± °æ¿ì¿£ sendto/WSASendTo, recvfrom/WSARecvFrom ÇÔ¼ö´Â ¿©ÀüÈ÷ »ç¿ë °¡´É ÇÕ´Ï´Ù. ±âº» ¸ñÀûÁö ÁÖ¼Ò´Â connect ÇÔ¼ö¸¦ ´Ù½ÃÇѹø È£ÃâÇÔÀ¸·Î½á °£´ÜÈ÷ ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. ºñÁ¢¼Ó ÁöÇâÇü ¼ÒÄÏÀÎ °æ¿ì¿£ ÀÌÀü¿¡ ÀÌ¹Ì Á¢¼ÓµÈ »óÅ ¶ó°í ÇÒ Áö¶óµµ, »ó°ü¾ø½À´Ï´Ù. ¸¸¾à »õ·Î connectµÇ´Â name ÀÌ ÀÌÀü¿¡ Á¢¼ÓµÈ Á¤º¸¿Í ´Ù¸£´Ù¸é, ¼ö½ÅÇϱâ À§Çؼ­ Å¥¿¡ ÀúÀåµÇ¾ú´ø µ¥ÀÌÅͱ׷¥ µ¥ÀÌÅÍ´Â ¾ø¾îÁ® ¹ö¸³´Ï´Ù.

ºñÁ¢¼Ó ÁöÇâÇü ¼ÒÄÏÀÇ °æ¿ì name ¸Å°³º¯¼ö´Â ºê·Îµåij½ºÆ®(broadcast) ÁÖ¼Ò¸¦ Æ÷ÇÔÇÑ ¿Ã¹Ù¸¥ ÁÖ¼Ò¸¦ ³ªÅ¸³¾¼ö ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, ºê·Îµåij½ºÆ® ÁÖ¼Ò¿¡ Á¢¼ÓÇϱâ À§Çؼ­´Â SO_BROADCAST ¿É¼ÇÀ» üũÇϱâÀ§ÇØ setsockopt ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿©¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, connect ÇÔ¼ö´Â WSAEACCES ¿¡·¯Äڵ带 ³»¸é¼­ ½ÇÆÐ ÇÒ °ÍÀÔ´Ï´Ù.

Windows CE: Windows CE ¿¡¼­´Â WSAEINTR ¿¡·¯ Äڵ带 Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.

IrSocket¿¡¼­ÀÇ ±¸Çö ¹æ¹ý¿¡ ´ëÇؼ­:

IrSocketsÀº sockaddr_irda ÇüÅÂÀÇ ÁÖ¼Ò·Î connect ÇÔ¼ö¸¦ ±¸ÇöÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î Ŭ¶óÀ̾ðÆ® ¾îÇø®ÄÉÀ̼ÇÀº socket ÇÔ¼ö¸¦ »ç¿ëÇؼ­ socketÀ» »ý¼ºÇÏ°í, IRLMP_ENUMDEVICES ¼ÒÄÏ ¿É¼ÇÀ¸·Î IrDa µð¹ÙÀ̽º¿¡ ´ëÇÑ °ÍµéÀ» ½ºÄµÇÏ°í, ¹ÝȯµÇ´Â ÁÖ¼Ò ÇüÅÂÀÇ ¸®½ºÆ®·ÎºÎÅÍ µð¹ÙÀ̽º¸¦ ¼±Åà ÇÒ °ÍÀÔ´Ï´Ù. ±×¸®°í connect ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. µ¿±â¼ÒÄÏ°ú ºñµ¿±â ¼ÒÄÏ°úÀÇ Â÷ÀÌÁ¡Àº ¾ø½À´Ï´Ù.

Return Values

¿¡·¯°¡ ¹ß»ýÇÏÁö ¾ÊÀ» °æ¿ì connect ÇÔ¼ö´Â 0À» ¸®ÅÏÇÕ´Ï´Ù. ¿¡·¯°¡ ¹ß»ýÇÑ °æ¿ì SOCKET_ERROR¸¦ ¸®ÅÏÇÏ°í ƯÁ¤ÇÑ ¿¡·¯ÄÚµå´Â WSAGetLastError ÇÔ¼ö¸¦ È£Ãâ ÇÔÀ¸·Î½á ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.

µ¿±â¼ÒÄÏ(blocking socket) ¿¡¼­ ¸®ÅÏ °ªÀº Á¢¼Ó ½ÃµµÀÇ ¼º°ø ¶Ç´Â ½ÇÆÐ °ªÀ» ÀǹÌÇÕ´Ï´Ù.

ºñµ¿±â ¼ÒÄÏ(nonblocking socket) ¿¡¼­ Á¢¼Ó ½Ãµµ´Â ¹Ù·Î ¿Ï·áµÉ ¼ö ¾ø½À´Ï´Ù. ÀÌ·± °æ¿ì¿¡, connect ÇÔ¼ö´ÂSOCKET_ERROR ¸¦ ¸®ÅÏ ÇÒ °ÍÀÔ´Ï´Ù. ±×¸®°í WSAGetLastError ÇÔ¼ö´Â WSAEWOULDBLOCK ¿¡·¯Äڵ带 ¸®ÅÏ ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ·±°æ¿ì¿¡ Á¢¼Óó¸®ÀÇ ¿Ï·á¸¦ ¾Ë¾Æ³»±â À§ÇØ ¿ì¸®°¡ ÃëÇÒ ¼ö Àִ¹æ¹ýÀÌ 3°¡Áö°¡ ÀÖ½À´Ï´Ù.

  1. Á¢¼Ó ¿äû¿¡ ÀÇÇÑ ¿Ï·á¸¦ °áÁ¤ÇϱâÀ§Çؼ­ select ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù.
  2. ¸¸¾à ¾îÇø®ÄÉÀ̼ÇÀÌ Á¢¼Ó À̺¥Æ® ¹ß»ýÀ» À§ÇØ WSAAsyncSelect ÇÔ¼ö¸¦ »ç¿ë Çß´Ù¸é, ¾îÇø®ÄÉÀ̼ÇÀº Á¢¼Ó󸮰¡ ¿Ï·á(¼º°øÇßµç ½ÇÆÐÇßµç) µÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â FD_CONNECT ÅëÁö ¸Þ¼¼Áö¸¦ ¹ÞÀ» °ÍÀÔ´Ï´Ù.
  3. ¸¸¾à ¾îÇø®ÄÉÀ̼ÇÀÌ Á¢¼Ó À̺¥Æ® ¹ß»ýÀ» À§ÇØ WSAEventSelect ÇÔ¼ö¸¦ »ç¿ë Çß´Ù¸é, ¿«¾îÁ® ÀÖ´Â À̺¥Æ® °´Ã¼´Â Á¢¼Ó󸮰¡ ¿Ï·á(¼º°øÇßµç ½ÇÆÐÇßµç) µÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â ½ÅÈ£¸¦ ¹ÞÀ» °ÍÀÔ´Ï´Ù.

ºñµ¿±â ¼ÒÄÏ(nonblocking socket)¿¡¼­ Á¢¼Ó ½Ãµµ°¡ ¿Ï·áµÇÁö Àü¿¡, °°Àº ¼ÒÄÏ¿¡ ´ëÇÑ ´ÙÀ½¿¡ À̾îÁö´Â connect ÇÔ¼öÀÇ È£ÃâÀº WSAEALREADY ¿¡·¯ Äڵ带 ¹ß»ýÇÏ´Â ½ÇÆзΠµ¹¾Æ°¥ °ÍÀÌ°í Á¢¼ÓÀÌ ¼º°øÀûÀ¸·Î ¿Ï·á µÈ »óÅ¿¡¼­ÀÇ connect ÇÔ¼öÀÇ È£ÃâÀº WSAEISCONN ¿¡·¯ Äڵ带 ¹ß»ýÇÏ´Â ½ÇÆзΠµ¹¾Æ°¥ °ÍÀÔ´Ï´Ù. Áï, ¾îÇø®ÄÉÀ̼ǿ¡¼­ ÀÌÁßÀ¸·Î connect ÇÔ¼ö¸¦ È£ÃâÇϴ°ÍÀº ¹Ù¶÷Á÷ ÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, ¸¸¾à ¿¡·¯Äڵ尡 Á¢¼Ó ½Ãµµ ½ÇÆÐ¿Í °°Àº ¿¡·¯ Äڵ带 ÀǹÌÇÑ´Ù¸é( ¿¹¸¦µé¾î WSAECONNREFUSED, WSAENETUNREACH ¿Í °°ÀÌ) °°Àº ¼ÒÄÏ¿¡ ´ëÇؼ­ ´Ù½Ã connect ÇÔ¼ö¸¦ È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Error Codes

WSANOTINITIALISED

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

WSAENETDOWN

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

WSAEADDRINUSE

ÁöÁ¤µÈ ¾îµå·¹½º°¡ ÀÌ¹Ì »ç¿ëÁß ÀÔ´Ï´Ù.

WSAEINTR ºí·°Å· À©¼Ó v1.1 ÀÌ WSACancelBlockingCall ÇÔ¼ö¿¡¼­ Ãë¼ÒµÇ¾ú½À´Ï´Ù
WSAEINPROGRESS

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

WSAEALREADY ºñµ¿±â connect ¿ÀÆÛ·¹ÀÌ¼Ç È£ÃâÀÌ ÁöÁ¤µÈ ¼ÒÄÏ¿¡¼­ ÇöÀç ÁøÇà ÁßÀÔ´Ï´Ù.
WSAEADDRNOTAVAIL ¿ø°Ý ¾îµå·¹½º°¡ ADDR_ANY ¿Í °°ÀÌ ¿Ã¹Ù·ÎµÈ ¾îµå·¹½º°¡ ¾Æ´Õ´Ï´Ù.
WSAEAFNOSUPPORT ÁöÁ¤µÈ ¾îµå·¹½º ü°è°¡ À©¼Ó¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø´Â ÇüÅ ÀÔ´Ï´Ù.
WSAECONNREFUSED Á¢¼Ó½Ãµµ°¡ °­Á¦·Î Á¾·áµÇ¾ú½À´Ï´Ù.
WSAEFAULT name ¶Ç´Â namelen ¸Å°³º¯¼ö°¡ ¿Ã¹Ù¸¥ ÇüÅ°¡ ¾Æ´Õ´Ï´Ù.
WSAEINVAL s ¸Å°³º¯¼ö°¡ ¸®½¼¼ÒÄÏÀ̰ųª, ÁöÁ¤µÈ ¸ñÀûÁö ÁÖ¼Ò°¡ ÀÏ°üÀûÀÌÁö ¾Ê½À´Ï´Ù.
WSAEISCONN Á¢¼ÓÁöÇâÇü ¼ÒÄÏ(SOCK_STREAM) ¿¡¼­ ¼ÒÄÏÀÌ ÀÌ¹Ì ¿¬°áµÇ¾î ÀÖ½À´Ï´Ù.
WSAENETUNREACH ³×Æ®¿÷ÀÌ ÇöÀç ÁöÁ¤µÈ È£½ºÆ®·Î ¿¬°áµÉ ¼ö ¾ø½À´Ï´Ù.
WSAENOBUFS

³²¾ÆÀÖ´Â ¹öÆÛ °ø°£ÀÌ ¾ø¾î¼­ ¼ÒÄÏÀº Á¢¼Ó ÇÒ ¼ö ¾ø½À´Ï´Ù.

WSAENOTSOCK ±â¼úÀÚ(descriptor)°¡ ¼ÒÄÏ ±â¼úÀÚ°¡ ¾Æ´Õ´Ï´Ù.
WSAETIMEDOUT

Á¢¼Ó ½Ãµµ°¡ ½Ã°£ÃÊ°ú µÇ¾ú½À´Ï´Ù.

WSAEWOULDBLOCK

¼ÒÄÏÀÌ ºñµ¿±â ¼ÒÄÏÀ¸·Î ¸¶Å·µÇ¾î ÀÖÀ» °æ¿ì Áï½Ã Á¢¼Ó¿¬»êÀ» ¿Ï·áÇÒ ¼ö ¾øÀ» ¶§ ¼ö½Ã·Î ³ª¿É´Ï´Ù.

WSAEACCES
  
ºê·Îµåij½ºÆ®(broadcast) ¾îµå·¹½º¸¦ À§ÇÑ µ¥ÀÌÅͱ׷¥ ¼ÒÄÏÀÇ Á¢¼Ó½Ãµµ°¡ setsockopt ÇÔ¼ö·Î SO_BROADCAST °¡ ¼³Á¤µÇ¾îÀÖÁö ¾ÊÀº »óÅ¿¡¼­ ½ÇÆÐ Çß½À´Ï´Ù.

QuickInfo

Windows NT : »ç¿ë°¡´É
Windows : »ç¿ë°¡´É
Windows CE : ¹öÁ¯ 1.0 ±×¸®°í ±×ÀÌÈÄÀÇ ¹öÁ¯¿¡¼­ »ç¿ë°¡´É
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, accept, bind, getsockname, select, socket, WSAAsyncSelect, WSAConnect