주소 구조체

System Program/socket 2014. 3. 4. 11:10

1. 유닉스 주소 체계 (내부 내트워크)

  

struct sockaddr_un{

sa_family_t sun_family;                    /* 항상 AF_UNIX */

char sun_path[108];                       /* NULL로 종료되는 소켓 경로명 */

}; 

 

2. IPv4 소켓 주소

 

struct in_addr {

in_addr_t s_addr;                            /* IPv4 4바이트 부호없는 32비트 정수 */ 

};

 

struct sockaddr_in {

sa_family_t sin_family;                     /* 주소 패밀리 AF_INET 설정 */

in_port_t    sin_port;                        /* 포트 번호 */

struct in_addr sin_addr;                  /* IPv4 주소 */

unsigned char __pad[X];                /* 패딩 */

}; 

 

3. IPv6 소켓 주소

 

struct in6_addr {

in_addr_t s6_addr[16];                            /* IPv6 16바이트 부호없는 128비트 정수 */ 

};

 

struct sockaddr_in6 {

sa_family_t sin6_family;                     /* 주소 패밀리 AF_INET6 설정 */

in_port_t    sin6_port;                        /* 포트 번호 */

uint32_t sin6_flowinfo;                       /* 흐름 정보 */

struct in6_addr sin6_addr;                  /* IPv6 주소 */

uint32_t sin6_scope_id;                     /* 범위 ID */ 

}; 

 

 

위의 주소 체계는 결국 소켓함수 API에서 사용될 때 struct sockaddr로 변환되어야 한다.

아래 소켓 시스템 함수 domain 표에서 5번째 필드 참조  

 

http://chipmaker.tistory.com/entry/기본-소켓-시스템-함수

 

 

: