윈속 라이브러리에서는 소켓 생성 함수와 소켓을 닫는 함수를 제공합니다.
소켓을 생성하는 함수 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 통신 프로그램을 제작하는 방법만 다루고 있습니다.