IPv4 기반의 주소표현을 위한 구조체


struct sockaddr_in {
    sa_family_t    sin_family;  // 주소체계

    uint116_t    sin_port; // PORT번호

    struct in_addr sin_addr; //32비트 IP주소

    char sin_zero[8]; // 사용되지 않음

}


struct in_addr { 

   in_addr_t s_addr;

}; // 32비트 IPv4 인터넷 주소


자료형 이름 

자료형에 담길 정보 

int8_t

uint8_t

int16_t

uint16_t

int32_t

uint32_t 

signed 8-bit int

unsigned 8-bit int (unsigned char)

signed 16-bit int

unsigned 16-bit int (unsigned short)

signed 32-bit in

unsigned 32-bit int (unsigned long) 

sa_family_t

socklen_t

주소체계(address family)

길이정보(length of struct) 

in_addr_t

in_port_t

IP주소정보, uint32_t로 정의되어 있음 

PORT 번호 정보, uint16_t로 정의되어 있음


구조체 sockaddr_in의 멤버에 대한 분석

멤버 sin_family

- 주소체계 정보 저장


멤버 sin_port

- 16비트 PORT번호 저장

- 네트워크 바이트 순서로 저장


멤버 sin_addr

- 32비트 IP주소정보 저장

- 네트워크 바이트 순서로 저장

- 멤버 sin_addr의 구조체 자료형 in_addr 사실상 32비트 정수자료형


멤버 sin_zero

- 특별한 의미를 지니지 않는 멤버

- 반드시 0으로 채워야 한다. // -으로 채워야하는 멤버 sin_zero의 존재이유를 이해 할 필요가 있다.


주소체계(Address Family) 

 

 

 


블로그 이미지

잉비니

,