connect Docbook ¿ø¹®
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>connect(2)



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

HTML º¯È¯¹®¼­

<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> 
<chapter lang=ko> 
<!-- ÀÛ¼ºÀÚ : yundream             --> 
<!-- ÀÛ¼ºÀÏ : 2004/01/05           --> 
<!-- ¿¬¶ôó : dreamyun@yahoo.co.kr --> 
 
<!-- ÇÔ¼ö À̸§À» ÀÔ·ÂÇÕ´Ï´Ù --> 
<title>connect(2)</title> 
 
<!-- ÀÌ°Ç ÇÔ¼ö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ¼³¸íÀ̱¸¿ä --> 
<para> 
    ¼ÒÄÏ¿¡ ¿¬°áÀ» ½ÃµµÇÑ´Ù.     
</para> 
  
<!-- ¿©±â¿¡ ÇÔ¼öÀÇ °£´ÜÇÑ »ç¿ë¹ýÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>»ç¿ë¹ý</title> 
    <para> 
        <screen> 
#include <sys/types.h> 
#include <sys/socket.h> 
 
int  connect(int sockfd, const struct sockaddr *serv_addr, 
         socklen_t addrlen); 
        </screen> 
    </para> 
</section> 
 
<!-- ¿©±â¿£ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>¼³¸í</title> 
    <para> 
        <emphasis>sockfd</emphasis>´Â socket()ÇÔ¼ö¿¡ ÀÇÇØ¼­ ¸¸µé¾îÁø  
        ¼ÒÄÏÁöÁ¤ÀÚ´Ù. SOCK_DGRAM ŸÀÔÀÇ ¼ÒÄÏÀÏ °æ¿ì´Â º¸Åë connect()¸¦  
        »ç¿ëÇÏÁö ¾ÊÁö¸¸ ¸¸¾à¿¡ »ç¿ëÇß´Ù¸é, <emphasis>serv_addr</emphasis>´Â  
        µ¥ÀÌÅͱ׷¥À» ¹ÞÀ» °÷ÀÇ À¯ÀÏÇÑ ÁÖ¼Ò°ªÀÌ µÈ´Ù. ±×·¸Áö ¾Ê°í  
        SOCK_STREAM, SOCK_SEQPACKET¶ó¸é <emphasis>serv_addr</emphasis>¿¡  
        ´ëÇÑ ¿¬°áÀ» ¸¸µç´Ù. <emphasis>addrlen</emphasis>´Â  
        <emphasis>serv_addr</emphasis>±¸Á¶Ã¼ÀÇ Å©±â´Ù.   
    </para> 
    <para> 
        º¸Åë ¿¬°áÁöÇâ ÇÁ·ÎÅäÄÝ ¼ÒÄϵéÀº Çѹø¿¡ connect¸¦ ÇÑ´Ù. ºñ¿¬°á ÁöÇâ  
        ÇÁ·ÎÅäÄݵéÀº serv_addrŸÀÔ°ú °ü·ÃµÈ »çÇ×À» ¹Ù²Ù±â À§ÇØ ¿©·¯¹ø  
        connect¸¦ »ç¿ëÇÑ´Ù. ÀÌ·¯ÇÑ °úÁ¤¿¡¼­ ºñ ¿¬°á ÁöÇâ ¼ÒÄϵéÀº  
        <emphasis>sa_family</emphasis>¸â¹öÀÇ ÁÖ¼Ò¸¦ AF_UNSPEC·Î ¼³Á¤Ç졒  
        ¿¬°áÇØ¼­ ¿¬°á°ú °ü·ÃµÈ ÇÊ¿ä¾ø´Â »çÇ×µéÀ» ¾ø¾Ø´Ù.   
    </para> 
</section> 
 
<!-- ÇÔ¼ö°¡ µÇµ¹·ÁÁÖ´Â °ªÀ̱¸¿ä --> 
<section> 
    <title>¹Ýȯ°ª</title> 
    <para> 
        ¼º°øÇϸé 0À» ¸®ÅÏÇÑ´Ù. ½ÇÆÐÇßÀ» °æ¿ì´Â -1À» ¸®ÅÏÇϰí Àû´çÇÑ errno¸¦  
        ¼³Á¤ÇÑ´Ù. 
    </para> 
</section> 
 
<!-- ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ µÇµ¹·ÁÁÖ´Â °ªµéÀÔ´Ï´Ù --> 
<section> 
    <title>¿¡·¯</title> 
    <para> 
        <variablelist>     
            <varlistentry> 
            <term>EBADF</term>     
            <listitem> 
                <para>     
                    ÆÄÀÏÁöÁ¤ÀÚ°¡ ÁöÁ¤ÀÚÅ×ÀÌºí¿¡ ÀÖ´Â À¯È¿ÇÑ À妽º°¡ ¾Æ´Ï´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EFAULT</term>     
            <listitem> 
                <para>     
                    ¼ÒÄÏ ±¸Á¶Ã¼ÀÇ ÁÖ¼Ò°¡ »ç¿ëÀÚ ÁÖ¼Ò°ø°£ ¹Ù±ù¿¡ ÀÖ´Ù.     
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENOSOCK</term>     
            <listitem> 
                <para>     
                    ÆÄÀÏÁöÁ¤ÀÚ°¡ ¼ÒÄϰú °ü·ÃµÇ¾î ÀÖÁö ¾Ê´Ù.     
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EISCONN</term>     
            <listitem> 
                <para>     
                    ÀÌ¹Ì ¿¬°áµÈ ¼ÒÄÏÀÌ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ECONNREFUSE</term>     
            <listitem> 
                <para>     
                    ¿ø°Ý¼­¹ö¿¡¼­ ¿¬°áÀ» °ÅºÎÇß´Ù. º¸Åë listen´ë±â¿­ÀÇ °ø°£ÀÌ 
                    ´õÀÌ»ó ³²¾Æ ÀÖÁö ¾Ê¾ÒÀ» ¶§ ¹ß»ýÇÑ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ETIMEOUT</term> 
            <listitem> 
                <para>     
                    ¿¬°á ½ÃµµÁß Å¸ÀӾƿôÀÌ ¹ß»ýÇß´Ù. ¼­¹ö°¡ ³Ê¹« ¹Ù»Û »óÅÂÀ̾ 
                    »õ ¿¬°áÀ» ¹Þ¾ÆµéÀÏ ¼ö ¾øÀ» °æ¿ì ¹ß»ýÇÑ´Ù.   
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENETUNREACH</term> 
            <listitem> 
                <para>     
                    ³×Æ®¿öÅ©¿¡ µµ´ÞÇÒ ¼ö ¾ø´Ù.  
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EALREADY</term> 
            <listitem> 
                <para>     
                    ¼ÒÄÏÀÌ ºñºÀ¼âÀÌ°í ¿¬°á ½Ãµµ°¡ ¾ÆÁ÷ ¿ÏÀüÇÏÁö ¾Ê´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EAGAIN</term> 
            <listitem> 
                <para>     
                    »ç¿ë °¡´ÉÇÑ ·ÎÄà Æ÷Æ®°¡ ´õÀÌ»ó ¾ø°Å³ª ¶ó¿ìÆÃ ij½Ì¿¡  
                    °ø°£ÀÌ ÃæºÐÇÏÁö ¾Ê´Ù. PF_INETÀÏ ¶§ ¶ó¿ìÆÃ ij½ÌÅ×À̺íÀÇ  
                    °ø°£À» ´Ã¸±¸®¸é ip(7)¿¡ ÀÖ´Â  
                    net.ipv4.ip_local_port_range¸¦ Âü°íÇ϶ó.     
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EACCES, EPERM</term> 
            <listitem> 
                <para>     
                    »ç¿ëÀÚ°¡ ¼ÒÄÏ ºê·Îµåij½ºÆ® Ç÷¡±×¸¦ °¡´ÉÇÏ°Ô ÇÏÁö  
                    ¾Ê°í ÁÖ¼Ò¸¦ ºê·Îµåij½ºÆ® ÁÖ¼Ò¿¡ ¿¬°áÇÏ·Á°í Ç߰ųª  
                    ¹æÈ­º® ±ÔÄ¢ ¶§¹®¿¡ ¿¬°á¿ä±¸°¡ ½ÇÆÐÇß´Ù.  
                </para>     
            </listitem> 
            </varlistentry> 
        </variablelist>     
    </para> 
</section> 
 
<!-- ¸¶Áö¸·À¸·Î ¿¡Á¦ ÀÔ´Ï´Ù                                                 --> 
<!-- ¿©±â¿¡´Â ¿ÏÀüÇÑ ¿¹Á¦°¡ µé¾î°¡ Àִµ¥, ±»ÀÌ ¿ÏÀüÇÑ ¿¹Á¦¸¦ ¸¸µéÇÊ¿ä ¾øÀÌ --> 
<!-- ÄÚµå ÀϺκи¸ ÀÛ¼ºÇؼ­ ¿Ã·ÁÁּŵµ µË´Ï´Ù                               -->  
<!-- "<", ">", "&" µîÀº º¯È¯ÇØ ÁÖ¼Å¾ß Çϴµ¥, ±ÍÂúÀ¸½Ã¸é :-) º¯È¯ ÇÏÁö ¾Ê   --> 
<!-- ¾Æµµ µË´Ï´Ù. Á¦°¡ °Ë»ç ÇØ¼­ ¿Ã¸®°Ú½À´Ï´Ù                               --> 
<!-- ¿¹Á¦¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» Àû¾îÁּŵµ µÇ±¸¿ä                            --> 
<section> 
    <title>¿¹Á¦</title> 
    <para> 
        <screen> 
#include <sys/stat.h> 
#include <arpa/inet.h> 
#include <stdio.h> 
#include <string.h> 
 
int main(int argc, char **argv) 
{ 
    struct sockaddr_in serveraddr; 
    int server_sockfd; 
    int client_len; 
    char buf[80]; 
    char rbuf[80]; 
 
 
    if ((server_sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) 
    { 
        perror("error :"); 
        exit(0); 
    } 
 
    server_sockfd = socket(AF_INET, SOCK_STREAM, 0); 
    serveraddr.sin_family = AF_INET; 
    serveraddr.sin_addr.s_addr = inet_addr("218.234.19.87"); 
    serveraddr.sin_port = htons(atoi(argv[1])); 
 
    client_len = sizeof(serveraddr); 
 
    if (connect(server_sockfd, (struct sockaddr *)&serveraddr, client_len) < 0) 
    { 
        perror("connect error :"); 
        exit(0); 
    } 
 
    memset(buf, 0x00, 80); 
    read(0, buf, 80); 
    if (write(server_sockfd, buf, 80) <= 0) 
    { 
        perror("write error : "); 
        exit(0); 
    } 
    memset(buf, 0x00, 80); 
    if (read(server_sockfd, buf, 80) <= 0) 
    { 
        perror("read error : "); 
        exit(0); 
    } 
    close(server_sockfd); 
    printf("read : %s", buf); 
} 
        </screen> 
        ¼­¹ö¿¡ ¿¬°áÇØ¼­ ¸Þ½ÃÁö¸¦ ÁÖ°í ¹Þ´Â °£´ÜÇÑ echo¼­¹ö´Ù.    
    </para> 
</section> 
<section> 
    <title>Âü°í¹®Çå</title> 
    <para> 
        <orderedlist> 
            <listitem> 
                <para> 
                    <ulink url="http://www.joinc.co.kr/modules.php?name=News&file=article&sid=11">¼ÀÇ÷Π¾Ë¾Æº¸´Â ¼ÒÄÏÇÁ·Î±×·¡¹Ö(1)</ulink> 
                </para> 
            </listitem> 
            <listitem> 
                <para> 
                    <ulink url="http://www.joinc.co.kr/modules.php?name=News&file=article&sid=57">Socket Layer</ulink> 
                </para> 
            </listitem> 
            <listitem> 
                <para> 
                    <ulink url="http://www.joinc.co.kr/modules.php?name=News&file=article&sid=20">´ÙÁß¿¬°á ¼­¹ö ¸¸µé±â (1)</ulink> 
                </para> 
            </listitem> 
            <listitem> 
                <para> 
                    <ulink url="http://www.joinc.co.kr/modules.php?name=News&file=article&sid=25">´ÙÁß¿¬°á ¼­¹ö ¸¸µé±â (2)</ulink> 
                </para> 
            </listitem> 
            <listitem> 
                <para> 
                    <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/function_socket(2)">socket(2)</ulink> 
                </para> 
            </listitem> 
            <listitem> 
                <para> 
                    <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/function_accept(2)">accept(2)</ulink> 
                </para> 
            </listitem> 
            <listitem> 
                <para> 
                    <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/function_listen(2)">listen(2)</ulink> 
                </para> 
            </listitem> 
        </orderedlist> 
    </para> 
</section> 
</chapter> 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.