¼ÒÄÏ¿¬°áÀ» ½ÃµµÇÑ´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



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



<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=connect">connect</a>(2)

1장. connect(2)

¼ÒÄÏ¿¡ ¿¬°áÀ» ½ÃµµÇÑ´Ù.


1.1. »ç¿ë¹ý

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

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


1.2. ¼³¸í

sockfd´Â socket()ÇÔ¼ö¿¡ ÀÇÇØ¼­ ¸¸µé¾îÁø ¼ÒÄÏÁöÁ¤ÀÚ´Ù. SOCK_DGRAM ŸÀÔÀÇ ¼ÒÄÏÀÏ °æ¿ì´Â º¸Åë connect()¸¦ »ç¿ëÇÏÁö ¾ÊÁö¸¸ ¸¸¾à¿¡ »ç¿ëÇß´Ù¸é, serv_addr´Â µ¥ÀÌÅͱ׷¥À» ¹ÞÀ» °÷ÀÇ À¯ÀÏÇÑ ÁÖ¼Ò°ªÀÌ µÈ´Ù. ±×·¸Áö ¾Ê°í SOCK_STREAM, SOCK_SEQPACKET¶ó¸é serv_addr¿¡ ´ëÇÑ ¿¬°áÀ» ¸¸µç´Ù. addrlen´Â serv_addr±¸Á¶Ã¼ÀÇ Å©±â´Ù.

º¸Åë ¿¬°áÁöÇâ ÇÁ·ÎÅäÄÝ ¼ÒÄϵéÀº Çѹø¿¡ connect¸¦ ÇÑ´Ù. ºñ¿¬°á ÁöÇâ ÇÁ·ÎÅäÄݵéÀº serv_addrŸÀÔ°ú °ü·ÃµÈ »çÇ×À» ¹Ù²Ù±â À§ÇØ ¿©·¯¹ø connect¸¦ »ç¿ëÇÑ´Ù. ÀÌ·¯ÇÑ °úÁ¤¿¡¼­ ºñ ¿¬°á ÁöÇâ ¼ÒÄϵéÀº sa_family¸â¹öÀÇ ÁÖ¼Ò¸¦ AF_UNSPEC·Î ¼³Á¤ÇÏ°í ¿¬°áÇØ¼­ ¿¬°á°ú °ü·ÃµÈ ÇÊ¿ä¾ø´Â »çÇ×µéÀ» ¾ø¾Ø´Ù.


1.3. ¹Ýȯ°ª

¼º°øÇϸé 0À» ¸®ÅÏÇÑ´Ù. ½ÇÆÐÇßÀ» °æ¿ì´Â -1À» ¸®ÅÏÇϰí Àû´çÇÑ errno¸¦ ¼³Á¤ÇÑ´Ù.


1.4. ¿¡·¯

EBADF

ÆÄÀÏÁöÁ¤ÀÚ°¡ ÁöÁ¤ÀÚÅ×ÀÌºí¿¡ ÀÖ´Â À¯È¿ÇÑ À妽º°¡ ¾Æ´Ï´Ù.

EFAULT

¼ÒÄÏ ±¸Á¶Ã¼ÀÇ ÁÖ¼Ò°¡ »ç¿ëÀÚ ÁÖ¼Ò°ø°£ ¹Ù±ù¿¡ ÀÖ´Ù.

ENOSOCK

ÆÄÀÏÁöÁ¤ÀÚ°¡ ¼ÒÄϰú °ü·ÃµÇ¾î ÀÖÁö ¾Ê´Ù.

EISCONN

ÀÌ¹Ì ¿¬°áµÈ ¼ÒÄÏÀÌ´Ù.

ECONNREFUSE

¿ø°Ý¼­¹ö¿¡¼­ ¿¬°áÀ» °ÅºÎÇß´Ù. º¸Åë listen´ë±â¿­ÀÇ °ø°£ÀÌ ´õÀÌ»ó ³²¾Æ ÀÖÁö ¾Ê¾ÒÀ» ¶§ ¹ß»ýÇÑ´Ù.

ETIMEOUT

¿¬°á ½ÃµµÁß Å¸ÀӾƿôÀÌ ¹ß»ýÇß´Ù. ¼­¹ö°¡ ³Ê¹« ¹Ù»Û »óÅÂÀ̾ »õ ¿¬°áÀ» ¹Þ¾ÆµéÀÏ ¼ö ¾øÀ» °æ¿ì ¹ß»ýÇÑ´Ù.

ENETUNREACH

³×Æ®¿öÅ©¿¡ µµ´ÞÇÒ ¼ö ¾ø´Ù.

EALREADY

¼ÒÄÏÀÌ ºñºÀ¼âÀÌ°í ¿¬°á ½Ãµµ°¡ ¾ÆÁ÷ ¿ÏÀüÇÏÁö ¾Ê´Ù.

EAGAIN

»ç¿ë °¡´ÉÇÑ ·ÎÄà Æ÷Æ®°¡ ´õÀÌ»ó ¾ø°Å³ª ¶ó¿ìÆÃ ij½Ì¿¡ °ø°£ÀÌ ÃæºÐÇÏÁö ¾Ê´Ù. PF_INETÀÏ ¶§ ¶ó¿ìÆÃ ij½ÌÅ×À̺íÀÇ °ø°£À» ´Ã¸±¸®¸é ip(7)¿¡ ÀÖ´Â net.ipv4.ip_local_port_range¸¦ Âü°íÇ϶ó.

EACCES, EPERM

»ç¿ëÀÚ°¡ ¼ÒÄÏ ºê·Îµåij½ºÆ® Ç÷¡±×¸¦ °¡´ÉÇÏ°Ô ÇÏÁö ¾Ê°í ÁÖ¼Ò¸¦ ºê·Îµåij½ºÆ® ÁÖ¼Ò¿¡ ¿¬°áÇÏ·Á°í Ç߰ųª ¹æÈ­º® ±ÔÄ¢ ¶§¹®¿¡ ¿¬°á¿ä±¸°¡ ½ÇÆÐÇß´Ù.


1.5. ¿¹Á¦

#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);
}
		
¼­¹ö¿¡ ¿¬°áÇØ¼­ ¸Þ½ÃÁö¸¦ ÁÖ°í ¹Þ´Â °£´ÜÇÑ echo¼­¹ö´Ù.

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.