socket struct

// # 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() 를 사용해서 여러 클라이언트의 접속을 처리.