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°¡Áö°¡ ÀÖ½À´Ï´Ù.
ºñµ¿±â ¼ÒÄÏ(nonblocking socket)¿¡¼ Á¢¼Ó ½Ãµµ°¡ ¿Ï·áµÇÁö Àü¿¡, °°Àº ¼ÒÄÏ¿¡ ´ëÇÑ ´ÙÀ½¿¡ À̾îÁö´Â connect ÇÔ¼öÀÇ È£ÃâÀº WSAEALREADY ¿¡·¯ Äڵ带 ¹ß»ýÇÏ´Â ½ÇÆÐ·Î µ¹¾Æ°¥ °ÍÀ̰í Á¢¼ÓÀÌ ¼º°øÀûÀ¸·Î ¿Ï·á µÈ »óÅ¿¡¼ÀÇ connect ÇÔ¼öÀÇ È£ÃâÀº WSAEISCONN ¿¡·¯ Äڵ带 ¹ß»ýÇÏ´Â ½ÇÆÐ·Î µ¹¾Æ°¥ °ÍÀÔ´Ï´Ù. Áï, ¾îÇø®ÄÉÀ̼ǿ¡¼ ÀÌÁßÀ¸·Î connect ÇÔ¼ö¸¦ È£ÃâÇϴ°ÍÀº ¹Ù¶÷Á÷ ÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, ¸¸¾à ¿¡·¯Äڵ尡 Á¢¼Ó ½Ãµµ ½ÇÆÐ¿Í °°Àº ¿¡·¯ Äڵ带 ÀǹÌÇÑ´Ù¸é( ¿¹¸¦µé¾î WSAECONNREFUSED, WSAENETUNREACH ¿Í °°ÀÌ) °°Àº ¼ÒÄÏ¿¡ ´ëÇØ¼ ´Ù½Ã connect ÇÔ¼ö¸¦ È£Ãâ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
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
overview, accept, bind, getsockname, select, socket, WSAAsyncSelect, WSAConnect