// # Socket address structures 소켓 주소 체계 알아보기
// socket address : IP + port // 127.0.0.1:8080
// ip 주소도 ipv4, ipv6에 따라 길이가 다르기 때문에 (v4 : 32bit, v6 : 128bit)
// 우리가 어떤 프로토콜, 규칙을 사용하느냐에 따라 주소 정보를 나타내는 데이터 타입이 달라지기 때문에 이를 편하게 사용하기 위해서 주소구조체로 만들어 놓음 미리.
//
#include <netinet/in.h>
#include <arpa/inet.h> //<netinet/in.h> 포함.
// 주소를 담는 구조체는 sockaddr, sockaddr_in, sockaddr_in6, sockaddr_un ...
/**
* Socket Structure | Address Family
* sockaddr_dl | AF_LINK
* sockaddr_in | AF_INET
* sockaddr_in6 | AF_INET6
* sockaddr_ll | AF_PACKET
* sockaddr_un | AF_UNIX
*
*/
/**
* member types
* - sa_family : 주소 체계
* - sa_data : 해당 주소체계에서 사용하는 주소 정보 (ip정보, 포트정보);
*/
struct sockaddr {
u_short sa_family;
char sa_data[14];
}
/**
* IPv4 주소를 저장하는 구조체
*/
struct sockaddr_in {
sa_family_t sin_family;
utin16_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
}
fork() 를 사용해서 여러 클라이언트의 접속을 처리.