linux man page : getpeername ¿¬°áµÈ È£½ºÆ®ÀÇ Á¤º¸¸¦ ¾Ë¾Æ¿Â´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

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



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

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

1장. getpeername(2)

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

¼ÒÄÏ ÁöÁ¤¹øÈ£ s ¿¡ Á¢¼ÓµÈ È£½ºÆ®Á¤º¸¸¦ ¾Ë¾Æ¿À°í ½ÍÀ»¶§ »ç¿ëÇÑ´Ù.


1.1절. »ç¿ë¹ý

#include <sys/socket.h>

int getpeername(int s, struct sockaddr *name, socklen_t *namelen);
		


1.2절. ¼³¸í

¶§¶§·Î ³×Æ®¿÷À¸·Î Á¢±ÙÇÑ ¼ÒÄÏ ÁöÁ¤¹øÈ£ s ¸¦ ÀÌ¿ëÇÏ¿© Á¢±ÙÇÑ È£½ºÆ®ÀÇ Á¤º¸¸¦ ¾Ë¾Æ¿À°í ½ÍÀ»¶§°¡ ÀÖÀ»°ÍÀÌ´Ù. ÀÌ·²°æ¿ì »ç¿ëÇÒ¼ö ÀÖÀ¸¸ç s ¿¡´Â ¼ÒÄÏÀúÁ¤¹øÈ£, *name ´Â ¾Ë¾Æ³½ È£½ºÆ®ÀÇ Á¤º¸¸¦ ÀúÀåÇÒ sockaddr ±¸Á¶Ã¼, ¸¶Áö¸· *namelen Àº nameÀÌ °¡¸®Å°°í ÀÖ´Â ¿µ¿ªÀÇ Å©±â¸¦ ³ªÅ¸³½´Ù.


1.3절. ¹Ýȯ°ª

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


1.4절. ¿¡·¯

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

EBADF

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

ENOTSOCK

s °¡ ¼ÒÄÏÀÌ ¾Æ´Ñ ÆÄÀÏÀϰæ¿ì

ENOTCONN

¼ÒÄÏÀÌ ¿¬°áµÇ¾î ÀÖÁö ¾ÊÀ»°æ¿ì

ENOBUFS

½Ã½ºÅÛ¿¡ ¿¬»êÀ» À§Çؼ­ ÀÌ¿ëÇÒ¼ö ÀÖ´Â ÀÚ¿øÀÌ ºÎÁ·ÇÒ¶§


1.5절. ¿¹Á¦

#include <sys/types.h>

#include <sys/stat.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>

#include <stdlib.h>
#include <string.h>

int main(int argc, char **argv)
{
    int server_sockfd, client_sockfd;
    int state, client_len;

    struct sockaddr_in clientaddr, serveraddr, myaddr;


    // internet ±â¹ÝÀÇ ½ºÆ®¸² ¼ÒÄÏÀ» ¸¸µéµµ·Ï ÇÑ´Ù. 
    if ((server_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(server_sockfd , (struct sockaddr *)&serveraddr, 
            sizeof(serveraddr));
    if (state == -1)
    {
        perror("bind error : ");
        exit(0);
    }

    state = listen(server_sockfd, 5);
    if (state == -1)
    {
        perror("listen error : ");
        exit(0);
    }


    client_sockfd = accept(server_sockfd, (struct sockaddr *)&clientaddr, 
                           &client_len);
    if (client_sockfd == -1)
    {
        perror("Accept error : ");
        exit(0);
    }

    // ¹Ù·Î¿©±â
    getpeername(client_sockfd, (struct sockaddr *)&myaddr, &client_len);  

    printf("client ip is %d\n",myaddr.sin_port);
    printf("client port is %s\n",inet_ntoa(myaddr.sin_addr));
    close(client_sockfd);
    return 1;
}
		

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