ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>connect(2)
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. <!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À» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|