IPv4 기반의 주소표현을 위한 구조체
struct sockaddr_in { 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) |
|
|
|
'이전것 > 네트워크' 카테고리의 다른 글
6.1. UDP 소켓의 특성과 동작원리 (0) | 2016.12.05 |
---|---|
4.1. TCP, UDP (0) | 2016.12.01 |
3.1. 소켓에 할당되는 IP주소와 PORT 번호 (0) | 2016.12.01 |
2.1. 소켓의 프로토콜과 그에 따른 데이터 전송 특성 (0) | 2016.11.16 |
1.1. 네트워크 프로그래밍과 소켓의 이해 (0) | 2016.11.15 |