IP주소 체계는 IPv4와 IPv6으로 나뉩니다. 각각 4바이트 주소체계, 16바이트 주소체계를 뜻하는데 오늘날엔 아직 IPv4를 대중적으로 사용하고 있습니다. (그래서 앞으로도 IPv4를 기준으로 말합니다) IPv4는 주소는 네트워크 주소와 호스트 주소로 나뉘어 있으며 형태에 따라서 A,B,C,D,E 클래스로 분류되는데, 여기서 E클래스는 일반적이지 않은(예약 되어있는) 클래스입니다. A,B,C,D 클래스의 구분은 다음과 같습니다. 클래스 A 1BYTE (네트워크 ID) 1BYTE*3(호스트 ID) 클래스 B 1BYTE*2 (네트워크 ID) 1BYTE*2(호스트 ID) 클래스 C 1BYTE*3 (네트워크 ID) 1BYTE(호스트 ID) 클래스 D 1BYTE*4 (멀티캐스트 IP주소) 첫 번째 바이트 범..
현생/TCP 소켓 프로그래밍
프로토콜이란 컴퓨터 상호간 대화에 필요한 통신규약입니다. #include int socket(int domain, int type, int protocol); // success: 파일 디스크럽터 fail: -1 sys/socket.h에서 소켓 함수는 위와 같이 구성되어 있는데, 여기서 첫 번째 인자로 들어가는 domain이 프로토콜 체계를 뜻합니다. 이 헤더파일에 선언되어 있는 프로토콜 체계의 종류는 다음과 같습니다. PF_INET IPv4 인터넷 프로토콜 체계 PF_INET6 IPv6 인터넷 프로토콜 체계 PF_LOCAL 로컬 통신을 위한 UNIX 프로토콜 체계 PF_PACKET Low Level 소켓을 위한 프로토콜 체계 PF_IPX IPX 노벨 프로토콜 체계 프로토콜 체계가 결정되었다고 데이터의 ..
소켓이란, 데이터 송수신에 사용할 수 있는 소프트웨어 장치이며 네트워크 망의 연결에 사용되는 도구입니다. 또, 네트워크를 통한 두 컴퓨터의 연결을 의미하기도 합니다. 다음은 서버 프로그램 구현에 쓰이는 함수들입니다. #include int socket(int domain, int type, int protocol); // success: 파일 디스크럽터 fail: -1 #include int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen); // success: 0 fail: -1 #include int listen(int sockfd, int backlog); // success: 0 fail: -1 #include int accept(int..