CONNECT

Section: ¸®´ª½º ÇÁ·Î±×·¡¸Ó ¸Å´º¾ó (2)
Updated: 1998³â 10¿ù 3ÀÏ
Index
Return to Main Contents
 

À̸§

connect - ¼ÒÄÏ ¿¬°áÀ» ½ÃÀÛÇÑ´Ù.  

»ç¿ë¹ý

#include <sys/types.h>
#include <sys/socket.h>

int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen);  

¼³¸í

ÆÄÀÏ ±â¼úÀÚ sockfd ´Â ¼ÒÄÏÀ» °¡¸®ÄÑ¾ß ÇÑ´Ù. ¸¸ÀÏ ¼ÒÄÏÀÌ SOCK_DGRAM ŸÀÔÀ̶ó¸é serv_addr ÁÖ¼Ò´Â ±âº»ÀûÀ¸·Î º¸³½ µ¥ÀÌÅͱ׷¥ÀÇ ÁÖ¼ÒÀÌ¸ç ¹ÞÀº µ¥ÀÌÅͱ׷¥ÀÇ À¯ÀÏÇÑ ÁÖ¼ÒÀÌ´Ù. ¸¸ÀÏ ¼ÒÄÏÀÌ SOCK_STREAM ³ª SOCK_SEQPACKETÀ̶ó¸é, ÇÔ¼ö´Â ´Ù¸¥ ¼ÒÄÏ¿¡ ´ëÇÑ ¿¬°áÀ» ¸¸µç´Ù. ´Ù¸¥ ¼ÒÄÏÀº serv_addr¿¡ ÀÇÇØ ¸í½ÃµÇ¸ç, ÀÌ°ÍÀº ¼ÒÄÏÀÇ Åë½Å °ø°£¿¡ ÀÖ´Â ÁÖ¼Ò( addrlen±æÀÌ) ÀÌ´Ù. °¢°¢ÀÇ Åë½Å °ø°£µéÀº ÀÚ½ÅÀÇ ¹æ½Ä´ë·Î serv_addr ÀÎÀÚ¸¦ Çؼ®ÇÑ´Ù.

ÀϹÝÀûÀ¸·Î, ¿¬°á ÁöÇâ ÇÁ·ÎÅäÄÝ ¼ÒÄϵéÀº ¼º°øÀûÀ¸·Î Çѹø¿¡ connect ÇÑ´Ù; ºñ¿¬°á ÁöÇâ ÇÁ·ÎÅäÄÝ ¼ÒÄϵéÀº À̰͵éÀÇ °ü·Ã»çÇ×À» ¹Ù²Ù±â À§ÇØ ¿©·¯¹ø connect ¸¦ »ç¿ë ÇÑ´Ù. ºñ ¿¬°á ÁöÇâ ¼ÒÄϵéÀº sockaddr ÀÇ sa_family ¸â¹ö°¡ °¡Áö°í ÀÖ´Â ÁÖ¼Ò¸¦ AF_UNSPECÀ¸·Î ¼³Á¤ÇÏ°í ¿¬°áÇÏ¿© °ü·Ã»çÇ×µéÀ» ¾ø¾Ø´Ù.
   

¹Ýȯ°ª

¸¸ÀÏ ¿¬°áÀ̳ª ¹ÙÀεùÀÌ ¼º°øÇÑ´Ù¸é, 0ÀÌ ¹ÝȯµÈ´Ù. ¿¡·¯½Ã, -1ÀÌ ¹ÝȯµÇ¸ç errno ´Â Àû´çÇÑ °ªÀ¸·Î ¼³Á¤µÈ´Ù.  

¿¡·¯

´ÙÀ½°ÍÀ»Àº ´ÜÁö ÀϹÝÀû ¼ÒÄÏ ¿¡·¯µéÀÌ´Ù. ¿©±â¿¡´Â ´Ù¸¥ µµ¸ÞÀο¡ ÀÇÁ¸ÇÑ ¿¡·¯µéÀÌ ÀÖÀ»¼ö ÀÖ´Ù.
EBADF
ÆÄÀÏ ±â¼úÀÚ°¡ ±â¼úÀÚ Å×ÀÌºí¿¡ ÀÖ´Â À¯È¿ÇÑ À妽º°¡ ¾Æ´Ï´Ù.
EFAULT
¼ÒÄÏ ±¸Á¶Ã¼ ÁÖ¼Ò°¡ »ç¿ëÀÚÀÇ ÁÖ¼Ò°ø°£¿Ü¿¡ ÀÖ´Ù.
ENOTSOCK
ÆÄÀÏ ±â¼úÀÚ°¡ ¼ÒÄÏ°ú °ü·ÃµÇ¾î ÀÖÁö ¾Ê´Ù.
EISCONN
¼ÒÄÏÀÌ ÀÌ¹Ì ¿¬°áµÇ¾î ÀÖ´Ù.
ECONNREFUSED
¿ø°Ý ÁÖ¼Ò¿¡ ´ëÇØ ±â´Ù¸®°í ÀÖ´Â °ÍÀÌ Çϳªµµ ¾ø´Ù.
ETIMEDOUT
¿¬°á ½ÃµµÁß Å¸ÀӾƿôÀÌ ¹ß»ýÇß´Ù. ¼­¹ö´Â ³Ê¹« busy »óÅÂÀ̾ »õ ¿¬°áÀ» ¹Þ¾ÆµéÀϼö ¾ø´Ù. IP ¼ÒÄÏ¿¡¼­ µ¿±âÈ­°¡ ¼­¹ö¿¡¼­ °¡´ÉÇÒ°æ¿ì ¸Å¿ì ¿À·¡ °É¸°´Ù´ÂÁ¡À» ÁÖÀÇÇضó.
ENETUNREACH
³×Æ®¿öÅ©¿¡ µµ´ÞÇÒ¼ö ¾ø´Ù.
EADDRINUSE
·ÎÄà ÁÖ¼Ò°¡ ÀÌ¹Ì »ç¿ëÁßÀÌ´Ù.
EINPROGRESS
¼ÒÄÏÀÌ ºñ-ºí·°Å·ÀÌ¸ç ¿¬°áÀÌ Áï½Ã ¿Ï¼ºµÉ¼ö ¾ø´Ù. ¾²±â¸¦ À§ÇØ ¼ÒÄÏÀ» ¼±ÅÃÇÏ¿© ¿¬°á ¿Ï¼ºÀ» À§Çؼ­ select(2)³ª poll(2)À¸·Î °¡´ÉÇÏ´Ù. select °¡ ¾²±â°¡´ÉÀ» °¡¸®Å²ÈÄ, connect ÀÌ ¼º°øÀû (SO_ERROR ´Â 0ÀÌ´Ù)À¸·Î ³¡³µ´ÂÁö ¾Æ´ÑÁö (SO_ERROR ´Â ½ÇÆп¡ ´ëÇÑ ÀÌÀ¯¸¦ ¼³¸íÇϸ鼭 ¿©±â¿¡¼­ ³ª¿­µÈ º¸ÅëÀÇ ¿¡·¯Á¶°ÇµéÁß ÇϳªÀÌ´Ù.) ¸¦ °áÁ¤Çϱâ À§Çؼ­ SOL_SOCKET ·¹º§ÀÇ SO_ERROR ¿É¼ÇÀ» ÀбâÀ§ÇØ getsockopt(2)À» »ç¿ëÇضó.
EALREADY
¼ÒÄÏÀÌ ºñ-ºí·°Å·ÀÌ°í Àü ¿¬°á ½Ãµµ°¡ ¾ÆÁ÷ ¿ÏÀüÇÏÁö ¾Ê´Ù.
EAGAIN
»ç¿ëÇÒ¼ö ÀÖ´Â ·ÎÄà Æ÷Æ®°¡ ´õÀÌ»ó ¾ø°Å³ª ¶ó¿ìÆà ij½Ì¿¡ ¿£Æ®¸®°¡ ÃæºÐÇÏÁö ¾Ê´Ù. PF_INET ½Ã ·ÎÄà Æ÷Æ®ÀÇ ¼ö¸¦ Áß°¡½ÃÅ°±â À§Çؼ­´Â ip(7)¿¡ ÀÖ´Â net.ipv4.ip_local_port_range sysctlÀ» Âü°íÇضó.
EAFNOSUPPORT
Àü´ÞµÈ ÁÖ¼Ò°¡ sa_family Çʵ忡 ÀÖ´Â Á¤È®ÇÑ ÁÖ¼Ò °¡Á·À» °¡Áö°í ÀÖÁö ¾Ê´Ù.
EACCES, EPERM
»ç¿ëÀÚ°¡ ¼ÒÄÏ ºê·Îµåij½ºÆ® Ç÷¡±×¸¦ °¡´ÉÇÏ°Ô ÇÏÁö ¾Ê°í ÁÖ¼Ò¸¦ ºê·¯µåij½ºÆ® ÁÖ¼Ò¿¡ ¿¬°áÇÒ·Á°í ½Ãµµ Ç߰ųª ·ÎÄà ¹æÈ­º® ±ÔÄ¢¶§¹®¿¡ ¿¬°á ¿ä±¸°¡ ½ÇÆÐÇß´Ù.
 

ȣȯ

SVr4, 4.4BSD ( connect ÇÔ¼ö´Â BSD4.2¿¡¼­ óÀ½ ³ªÅ¸³µ´Ù.). SVr4´Â Ãß°¡ÀûÀ¸·Î ÀϹÝÀû ¿¡·¯ Á¶°Çµé EADDRNOTAVAIL, EINVAL, EAFNOSUPPORT, EALREADY, EINTR, EPROTOTYPE, ±×¸®°í ENOSR¸¦ ¹®¼­È­ Çß´Ù. ¿©±â¼­ ±â¼úÇÏÁö ¾ÊÀº ¸¹Àº Ãß°¡Àû ¿¡·¯ Á¶°Çµéµ¹ ¿ª½Ã ¹®¼­È­ µÇ¾ú´Ù.  

ÁÖÀÇ

connect ÀÇ ¼¼¹øÂÅ ÀÎÀÚ´Â ½ÇÁ¦·Î intÀÌ´Ù(±×¸®°í ÀÌ°ÍÀº BSD 4.*¿Í libc4, libc5°¡ °¡Áö°í ÀÖ´Ù.) ¸î¸î POSIX¿¡¼­ È¥¶õÀº socklen_t ¶§¹®ÀÌ´Ù. Ç¥ÁØÀº ¾ÆÁ÷ äÅõÇÁö ¾Ê¾ÒÁö¸¸ glibc2´Â ÀÌ¹Ì ±×°ÍÀ» µû¸£°í ÀÖ°í ¶ÇÇÑ socklen_tµµ °¡Áö°í ÀÖ´Ù.  

¹ö±×

AF_UNSPEC ÁַηΠconnect ¸¦ È£ÃâÇÏ¿© ¼ÒÄÏÀÇ Á¢¼ÓÀ» ³¡´Â°ÍÀº ¾ÆÁ÷ ¼öÇàµÇÁö ¾Ê´Â´Ù.  

°ü·Ã Ç׸ñ

accept(2), bind(2), listen(2), socket(2), getsockname(2)  

¿ªÀÚ

Á¤°­ÈÆ <skyeyes@soback.kornet.net>, 2000³â 7¿ù 3ÀÏ


 

Index

À̸§
»ç¿ë¹ý
¼³¸í
¹Ýȯ°ª
¿¡·¯
ȣȯ
ÁÖÀÇ
¹ö±×
°ü·Ã Ç׸ñ
¿ªÀÚ

This document was created by man2html, using the manual pages.
Time: 08:06:59 GMT, March 25, 2004