Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

CONNECT

Section: Linux Programmer's Manual (2)
Updated: 3 Oct 1998
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 ¤Ç»ØÄꤹ¤ë¡£ serv_addr ¤Ï¥½¥±¥Ã¥È¤ÎÄÌ¿®¥É¥á¥¤¥ó¤Î¥¢¥É¥ì¥¹¤Ç¤¢¤ë¡£¤³¤Î¥¢¥É¥ì¥¹¤ÎŤµ¤Ï addrlen ¤Ç»ØÄꤹ¤ë¡£¸Ä¡¹¤ÎÄÌ¿®¥É¥á¥¤¥ó¤ÏÆÈ¼«¤ÎÊýË¡¤Ç¥Ñ¥é¥á¡¼¥¿¡¼ serv_addr ¤ò²ò¼á¤¹¤ë¡£

°ìÈÌŪ¤Ë¡¢Àܳ»Ø¸þ(connection-oriented)¥×¥í¥È¥³¥ë¤Ç¤Ï°ìÅÙ¤À¤± connect ¤¬À®¸ù¤¹¤ë¡£ ÈóÀܳ(connectionless)¥×¥í¥È¥³¥ë¤Ç¤ÏÂбþ¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë²¿ÅÙ¤â connect ¤ò»ÈÍѤǤ­¤ë¡£ ÈóÀܳ¥½¥±¥Ã¥È¤Ï sockaddr ¤Î sa_family ¥á¥ó¥Ð¤Ë AF_UNSPEC ¤òÀßÄꤹ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Àܳ¥¢¥É¥ì¥¹¤ÎÂбþ¤ò²ò¾Ã¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£  

ÊÖ¤êÃÍ

Àܳ¤Þ¤¿¤ÏÂбþ¤Å¤±¤ËÀ®¸ù¤¹¤ë¤È¥¼¥í¤òÊÖ¤¹¡£ ¼ºÇÔ¤¹¤ë¤È -1 ¤òÊÖ¤·¡¢ errno ¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£  

¥¨¥é¡¼

°Ê²¼¤Ï°ìÈÌŪ¤Ê¥½¥±¥Ã¥È¤Ë¤Ä¤¤¤Æ¤Î¥¨¥é¡¼¤Ç¤¢¤ë¡£Â¾¤Ë¥É¥á¥¤¥óÆÃÍ­¤Î¥¨¥é¡¼ ¤¬È¯À¸¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
EBADF
O " The file descriptor is not a valid index in the descriptor table. ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¥Æ¡¼¥Ö¥ë¤Î Àµ¤·¤¤¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤Ï¤Ê¤¤¡£
EFAULT
¥½¥±¥Ã¥È¹½Â¤ÂΤΥ¢¥É¥ì¥¹¤¬¥æ¡¼¥¶¡¼¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£
ENOTSOCK
¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤¬¥½¥±¥Ã¥È¤È´ØÏ¢ÉÕ¤±¤é¤ì¤Æ¤¤¤Ê¤¤¡£
EISCONN
¥½¥±¥Ã¥È¤Ï´û¤ËÀܳ(connect)¤µ¤ì¤Æ¤¤¤ë¡£
ECONNREFUSED
¥ê¥â¡¼¥È¥¢¥É¥ì¥¹¤ÇÀܳ¤òÂԤäƤ¤¤ë¥×¥í¥°¥é¥à¤¬¤Ê¤¤¡£
ETIMEDOUT
Àܳ¤ò»î¤ß¤Æ¤¤¤ëÅÓÃæ¤Ç»þ´ÖÀÚ¤ì(timeout)¤Ë¤Ê¤Ã¤¿¡£¥µ¡¼¥Ð¡¼¤¬º®»¨¤·¤Æ¤¤¤Æ ¿·¤¿¤ÊÀܳ¤ò¼õ¤±Æþ¤ì¤é¤ì¤Ê¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¡£ syncookie ¤¬¥µ¡¼¥Ð¡¼¤ÇÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ IP¥½¥±¥Ã¥È¤Î¥¿¥¤¥à¥¢¥¦¥È¤ÏÈó¾ï¤ËŤ¤¤«¤â¤·¤ì¤Ê¤¤¤³¤È¤ËÃí°Õ¡£
ENETUNREACH
¥Í¥Ã¥È¥ï¡¼¥¯¤¬Åþã¤Ç¤­¤Ê¤¤¡£
EADDRINUSE
¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤¬´û¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¡£
EINPROGRESS
¥½¥±¥Ã¥È¤¬ÈóÄä»ß(non-blocking)¤ËÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢Àܳ¤¬¤¹¤°¤Ë´°Î»¤·¤Ê¤¤¡£ ¥½¥±¥Ã¥È¤Ø¤Î½ñ¤­¹þ¤ß¤òÂԤĤ³¤È¤Ë¤è¤ê¡¢Àܳ¤Î´°Î»¤Ë select(2) ¤ä poll(2) ¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£select ¤Ç½ñ¤­¹þ¤ß²Äǽ¤Ë¤Ê¤Ã¤¿¸å¤Ë getsockopt(2) ¤Ç SOL_SOCKET ¥ì¥Ù¥ë¤Ç SO_ERROR ¥ª¥×¥·¥ç¥ó¤òÆÉ¤ß½Ð¤¹¤³ ¤È¤Ë¤è¤ê¡¢ connect ¤ËÀ®¸ù¤·¤¿ (SO_ERROR ¤¬¥¼¥í)¤«¡¢ ¼ºÇÔ¤·¤¿ (SO_ERROR ¤¬¤³¤³¤Ç¤Î¥¨¥é¡¼¥³¡¼¥É¤Î¤É¤ì¤«¤Ç¼ºÇԤθ¶°ø¤ò¼¨¤¹) ¤«¤ò·èÄê¤Ç¤­¤ë¡£
EALREADY
¥½¥±¥Ã¥È¤¬ÈóÄä»ß(non-blocking)¤ËÀßÄꤵ¤ì¤Æ¤ª¤ê¡¢°ÊÁ°¤ÎÀܳ¤¬´°Î»¤·¤Æ¤¤¤Ê¤¤¡£
EAGAIN
»ÈÍѲÄǽ¤Ê¥í¡¼¥«¥ë¤Î¥Ý¡¼¥È¤¬¤Ê¤¤¤«¡¢ ¥ë¡¼¥Æ¥£¥ó¥°¥­¥ã¥Ã¥·¥å¤Ë½½Ê¬¤Ê¥¨¥ó¥È¥ê¤¬¤Ê¤¤¡£ PF_INET ¤Î¾ì¹ç¤Ë¡¢¤É¤¦¤ä¤Ã¤Æ¥í¡¼¥«¥ë¥Ý¡¼¥È¤òÁý¤ä¤¹¤«¤Ë´Ø¤·¤Æ¤Ï ip(7) ¤Î net.ipv4.ip_local_port_range sysctl ¤ò»²¾È¤¹¤ë¤³¤È¡£
EAFNOSUPPORT
ÅϤµ¤ì¤¿¥¢¥É¥ì¥¹¤Î sa_family ¥Õ¥£¡¼¥ë¥É¤¬Àµ¤·¤¤¥¢¥É¥ì¥¹¡¦¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ï¤Ê¤¤¡£
EACCES, EPERM
¥½¥±¥Ã¥È¤Î¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¡¦¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ë ¥æ¡¼¥¶¤¬¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¤ØÀܳ¤ò»î¤ß¤¿¡£¤Þ¤¿¤Ï¡¢¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥¢¥¦¥©¡¼¥ë¤Î µ¬Â§¤Ë¤è¤êÀܳ¤ÎÍ׵᤬¼ºÇÔ¤·¤¿¡£
 

½àµò

SVr4, 4.4BSD ( connect ´Ø¿ô¤Ï BSD 4.2 ¤ÇºÇ½é¤Ë¸½¤ï¤ì¤¿)¡£ SVr4 ¤Ë¤Ï¾¤Ë°ìÈÌŪ¤Ê¥¨¥é¡¼¡¦¥³¡¼¥É¤È¤·¤Æ¡¢ EADDRNOTAVAIL, EINVAL, EAFNOSUPPORT, EALREADY, EINTR, EPROTOTYPE, ENOSR ¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£¤Þ¤¿¤³¤³¤Ç¸ÀµÚ¤µ¤ì¤Æ¤¤¤Ê¤¤Â¿¤¯¤Î¥¨¥é¡¼¾õÂ֤ˤĤ¤¤Æ µ­½Ò¤¬¤¢¤ë¡£  

Ãí°Õ

connect ¤Î»°ÈÖÌܤΰú¤­¿ô¤Ï BSD 4.* ¤ä libc4, libc5 ¤ÈƱÍÍ¤Ë¼ÂºÝ¤Ë¤Ï int ¤Ç¤¢¤ë¡£ ¸½ºß socklen_t ¤Ë´Ø¤·¤Æ POSIX ¤Ë¤Ï¾¯¤·º®Í𤬤¢¤ë¡£µ¬³Ê¤ÎÁð¹Æ¤Ï¤Þ¤ÀºÎÍÑ ¤µ¤ì¤Æ¤¤¤Ê¤¤¤¬¡¢glibc2 ¤Ç¤Ï¤½¤ì¤Ë½¾¤Ã¤Æ socklen_t ¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£ ¾Ü¤·¤¯¤Ï accept(2) ¤ò»²¾È¤Î¤³¤È¡£  

¥Ð¥°

AF_UNSPEC ¥¢¥É¥ì¥¹¤ò»ØÄꤷ¤Æ connect ¤ò¸Æ¤Ö¤³¤È¤Ë¤è¤ê¥½¥±¥Ã¥È¤ÎÀܳ¤ò²ò¾Ã¤¹¤ëµ¡Ç½¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£  

´ØÏ¢¹àÌÜ

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


 

Index

̾Á°
½ñ¼°
ÀâÌÀ
ÊÖ¤êÃÍ
¥¨¥é¡¼
½àµò
Ãí°Õ
¥Ð¥°
´ØÏ¢¹àÌÜ

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.