linux man page : getsockname - ¼ÒÄÏ Á¤º¸¸¦ ¾ò¾î¿Â´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

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



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

Contents

1 getsockname
1.1 »ç¿ë ¹ý
1.2 ¼³¸í
1.3 ¹Ýȯ°ª
1.4 ¿¡·¯
1.5 ¿¹Á¦
1.6 °ü·Ã ±Û

1 getsockname

·ÎÄà ¼ÒÄÏ Á¤º¸¸¦ °¡Á®¿Â´Ù.

1.1 »ç¿ë ¹ý

#include <sys/socket.h> 
 
int getsockname(int s, struct sockaddr *name, socklen_t *namelen); 
 

1.2 ¼³¸í

ÀÌ ÇÔ¼ö´Â ÁöÁ¤ÇÑ ¼ÒÄÏÁöÁ¤ÀÚ s ¿¡ ´ëÇÑ Á¤º¸¸¦ ¹ÝȯÇÑ´Ù.

1.3 ¹Ýȯ°ª

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

1.4 ¿¡·¯

  • EBADF
    s °¡ À¯È¿ÇÑ ±â¼úÀÚ°¡ ¾Æ´Ï´Ù.
  • ENOTSOCK
    s °¡ ¼ÒÄÏÀÌ ¾Æ´Ñ ÆÄÀÏÀϰæ¿ì
  • ENOBUFS
    ½Ã½ºÅÛÀÇ ¸®¼Ò½º°¡ ÃæºÐÄ¡ ¾Ê´Ù.

1.5 ¿¹Á¦

#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,test; 
 
    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(4444); 
 
 
    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); 
 
 
    // ·ÎÄà ¼ÒÄÏÀÇ Á¤º¸¸¦ °¡Á®¿Â´Ù.  
    // ¾ð¾î¿Â Á¤º¸´Â myaddr ¿¡ ä¿öÁø´Ù.  
    getsockname(client_sockfd, (struct sockaddr *)&myaddr, &client_len); 
 
    // ¾ò¾î¿Â Á¤º¸¸¦ Ãâ·ÂÇÑ´Ù. 
    printf("Port    : %d\n", ntohs(myaddr.sin_port)); 
    printf("address : %s\n", inet_ntoa(myaddr.sin_addr)); 
 
    close(client_sockfd); 
    close>(sockfd); 
    return 1; 
} 
 

¿¬°áµÈ »ó´ë ¼ÒÄÏÀÇ ÁÖ¼Ò Á¤º¸¸¦ ¾ò¾î¿Ã·Á¸é getpeername(2)ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

1.6 °ü·Ã ±Û

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