2.5.1 socket , closesocket [TCP/IP 소켓 프로그래밍 with 윈도우즈]

윈속 라이브러리에서는 소켓 생성 함수와 소켓을 닫는 함수를 제공합니다.

소켓을 생성하는 함수
SOCKET socket(int af,int type,int protocol);
실패 시: -1(SOCKET_ERROR) 반환
af: 네트워크 주소 체계
    #define AF_INET       2         //IPv4
    #define AF_INET6      23        //IPv6
type: 소켓 타입
    #define SOCK_STREAM   1         //스트림 , TCP 프롤토콜의 전송 방식
    #define SOCK_DGRAM    2         //데이터 그램, UDP 프로토콜의 전송 방식
    #define SOCK_RAW      3         //RAW 소켓, 가공하지 않은 소켓
protocol: 프로토콜
    #define IPPROTO_TCP   6         //TCP 프로토콜
    #define IPPROTO_UDP   17        //UDP 프로토콜
    #define IPPROTO_RAW   255       //RAW
소켓을 닫는 함수
int closesocket(SOCKET sock);
실패 시: -1(SOCKET_ERROR) 반환

소켓을 생성하는 함수는 socket입니다. 이 함수의 입력 인자로는 네트워크 주소 체계와 소켓 타입 및 프로토콜이 있습니다.

IPv4를 사용할 때 네트워크 주소 체계는 AF_INET(PF_INET과 같음) 상수를 사용합니다. 그리고 소켓 타입은 TCP 프로토콜로 통신할 때 SOCK_STREAM, UDP 프로토콜로 통신할 때 SOCK_DGRAM을 사용하고 가공하지 않은 방식으로 직접 패킷을 수신하거나 패킷을 만들어 통신할 때 SOCK_RAW를 사용합니다.

이 외에도 윈속은 다양한 네트워크 주소 체계에서 다양한 방식의 소켓 타입과 프로토콜로 통신 프로그램을 제작할 수 있습니다. 하지만 이 책에서는 TCP/IP 통신 프로그램을 제작하는 방법만 다루고 있습니다.