소켓 주소 구조체 정의
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 |