소켓 주소 구조체 정의

Server/Winodw Network 2015. 7. 14. 21:21

소켓 주소 구조체 (socket address structures )

네트워크 프로그램에서 필요로 하는 주소 정보를 담고 있는 구조체로,

다양한 소켓 함수의 인자로 사용한다.

 

여러 소켓 구조체중 가장 기본은 SOCKADDR이다.

 

 

 

sa_family

- 주소체계를 나타내며, 부호 없는 16비트 정수값을 사용한다.

- TCP/IP 프로토콜을 사용한다면 이 값은 AF_INET 이다.

 

** u_short는 unsigned short 이다.

 

sa_data[14]

- 해당 주소 체계에서 사용하는 주소 정보를 담고 있다.

- 주소 체계에 따라 필욯나 정보가 다르므로 가장 일반적인 형태인 바이트 배열로 선언한 것임

- 여기에 TCP/IP를 사용한다면 여기에 IP와 포트번호가 저장될 것이다.

 

** 실제 프로그래밍을 할 때는 애플리케이션이 사용할 프로토콜의 종류에 맞는 소켓 주소 구조체를 사용한다.

 

우리가 사용할 TCP/IP 프로토콜을 위한 소켓 주소 구조체는 SOCKADDR_IN 이다.

 

 

sin_family

- 주소 체계를 나타내며, 부호 있는 16비트 정수값을 사용한다. 항상 AF_INET을 사용한다.

 

sin_port

- 포트 번호를 나타낸다. 부호 없는 16비트 정수값 사용한다.

 

sin_addr

- IP 주소를 나타내며, 32비트 in_addr 구조체를 사용한다.

 

sin_zero[8]

- 실제로 사용하지는 않으나 항상 0을 채우도록 한다.

 

 

 

IP 주소를 저장하기 위한 in_addr 구조체 정의

 

8비트(S_un_b), 16비트(S_un_w), 32비트(S_addr) 단위로 접근할 수 있게 만든 공용체(S_un)

 

 

소켓 주소 구조체를 사용하는 예

 

소켓 주소 구조체는 크기가 크기 때문에 소켓 함수 인자로 사용할 때는 항상 주소값을 사용하며

이때 반드시  SOCKADDR 포인터형으로 변환(type casting)한다.

 

 

'Server > Winodw Network' 카테고리의 다른 글

IP 주소 변환  (0) 2015.08.04
바이트 정렬 함수  (0) 2015.07.20
소켓 생성과 닫기  (0) 2015.07.14
윈도우 소켓 초기화와 종료  (0) 2015.07.14
오류 처리  (0) 2015.07.14
admin