bind - ¼ÒÄÏ¿¡ Ư¼ºÀ» ºÎ¿©ÇÑ´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

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



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

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

1장. bind(2)

차례
1.1절. »ç¿ë¹ý
1.2절. ¼³¸í
1.3절. ¹Ýȯ°ª
1.4절. ¿¡·¯
1.5절. ¿¹Á¦

¼ÒÄÏ¿¡ Ư¼ºÀ» ºÎ¿©(Á¤ÀÇ)ÇÑ´Ù.


1.1절. »ç¿ë¹ý

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

int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
		


1.2절. ¼³¸í

sockfd ´Â socket(2) ÇÔ¼ö¸¦ ÅëÇØ¼­ ¸¸µé¾îÁø ¼ÒÄÏÁöÁ¤¹øÈ£ÀÌ´Ù. bind ´Â ÀÌ sockfd ¿¡ my_addr ·Î ´ëº¯µÇ´Â Ư¼ºÀ» ºÎ¿©ÇÑ´Ù. my_addr ¿¡´Â sockfd °¡ Åë½ÅÀ» Çϱâ À§Çؼ­ ÇÊ¿äÇÑ Á¤º¸ÀÎ "port", "ÀÎÅͳÝÁÖ¼Ò", "¼ÒÄÏ È帧Á¾·ù" µîÀ» Æ÷ÇÔÇϰí ÀÖ´Ù.


1.3절. ¹Ýȯ°ª

¼º°øÇÒ°æ¿ì 0À» ½ÇÆÐÇßÀ»°æ¿ì¿¡´Â -1À» ¹ÝȯÇϸç, Àû´çÇÑ errno °ªÀ» ¼³Á¤ÇÑ´Ù.


1.4절. ¿¡·¯

´Ù¾çÇÑ ¿øÀο¡ ÀÇÇØ¼­ ¿¡·¯°¡ ¹ß»ýÇÒ¼ö ÀÖÀ¸¸ç ¾Æ·¡¿Í °°Àº ¿¡·¯ ¸Þ½ÃÁöµéÀÌ ÀÖ´Ù.

EBADF

sockfd °¡ À¯È¿ÇÑ ±â¼úÀÚ°¡ ¾Æ´Ï´Ù.

EACCES

ÁÖ¼Ò°¡ º¸È£µÇ°í ÀÖÀ¸¸ç, »ç¿ëÀÚ´Â ½´ÆÛÀ¯Àú°¡ ¾Æ´Ï´Ù.

ENOTSOCK

sockfd °¡ ¼ÒÄÏÁöÁ¤ÀÚ°¡ ¾Æ´Ñ ÆÄÀÏÁöÁ¤ÀÚÀÌ´Ù.

EROFS

¼ÒÄÏ ¾ÆÀ̳ëµå°¡ ÀбâÀü¿ë ÆÄÀϽýºÅÛ¿¡ ÀÖ´Ù.

ENOENT

sockfd °¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù.


1.5절. ¿¹Á¦

#include <sys/time.h> 
#include <sys/types.h> 
#include <unistd.h> 
#include <fcntl.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <sys/socket.h> 
#include <netinet/in.h> 
#include <arpa/inet.h> 

int main()
{
    int sockfd;
    int client_sockfd;
    int client_len;
    int state;
    struct sockaddr_in clientaddr, serveraddr, myaddr;

    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
    {
        perror("socket error : ");
        exit(0);
    }
    bzero(&serveraddr, sizeof(serveraddr));
    serveraddr.sin_family = AF_INET;
    serveraddr.sin_addr.s_addr = htonl(INADDR_ANY);
    serveraddr.sin_port = htons(12345);


    state = bind(sockfd , (struct sockaddr *)&serveraddr,
            sizeof(serveraddr));
    if (state == -1)
    {
        perror("bind error : ");
        exit(0);
    }
    
    state = listen(sockfd, 5);
    if (state == -1)
    {
        perror("listen error : ");
        exit(0);
    }
    client_len = sizeof(clientaddr);
    client_sockfd = accept(sockfd, (struct sockaddr *)&clientaddr,
                            &client_len);

    getpeername(client_sockfd, (struct sockaddr *)&myaddr, &client_len);

    printf("Port : %d\n", myaddr.sin_port);
    printf("address : %s\n", inet_ntoa(myaddr.sin_addr));

    close(client_sockfd);
    close(sockfd);
    return 1;
}    

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