소켓 생성과 닫기

Server/Winodw Network 2015. 7. 14. 20:49

윈도우 소켓 초기화가 끝나면 이제 소켓을 생성할 준비가 됬으므로 소켓을 생성하면 된다.

 

1. 소켓 생성

 

** 소켓을 이용해서 통신을 하기 위한 기본 요건은 통신 양단이 서로 동일한 프로토콜을 사용하는 것이다.

 

 

                                         성공 : 새로운 소켓, 실패 : INVALID_SOCKET

af : 주소체계를 지정한다.

type : 소켓 타입을 지정한다. SOCK_STREAM 또는 SOCK_DGRAM을 사용한다.

protocol : 사용할 프로토콜을 지정한다. 

 

 

socket함수는 사용자가 요청한 프로토콜을 이용하여 통신을 할 수 있도록 내부적으로 리소스를 할당하고, 이를 접근할 수 있는 일종의 핸들값(SOCKET 타입, 32비트 정수)를 리턴한다.

 

이 리턴하는 값을 socket descriptor라 부르며, 각종 소켓 함수를 호출할 때 인자로 전달하여 사용하게 된다.

 

 

** 주소체계(address family)

통신을 하기위해서는 통신 상대를 유일하게 지정할 수 있는 주소가 필요하다.

주소 체계란 이러한 주소 지정 방법을 지칭하는 용어이다.

 

주소 체계란 네트워크 프로토콜의 종류에 따라서 달라지므로, 주소 체계를 지정하는 것은 자신이 사용할 프로토콜을 선택하기 위한 첫번째 관문이 된다.

 

예를 들어서 TCP/UDP 프로토콜을 사용하고자 하면 AF_INET을 주소 체계로 사용한다.

 

소켓타입

소켓 타입은 사용할 프로토콜의 특성을 나타내는 값이다.

 

 

 소켓 타입 

  특성

  SOCK_STREAM

 신뢰성 있는 데이터 전송 기능 제공,  연결형 프로토콜

  SOCK_DGRAM

 비신뢰적인 데이터 전송 기능 제공, 비연결형 프로토콜

 

**소켓 타입은 네트워크 프로토콜의 종류에 따라 달라지므로,

   소켓 타입을 지정하는 것은 자신이 사용할 프로토콜을 선택하기 위한 두번째 관문이 된다.

 

주소 체계와 소켓 타입을 결정하면 사용할 프로토콜을 유일하게 선택할 수 있는 경우가 있다.

하지만 일반적으로 주소체계와 소켓타입이 같더라도 이에 해당하는 프로토콜이 두 개 이상 존재할 수 있다. 이 경우에는 프로토콜을 명시적으로 지정해야 한다.

 

 

  사용할 프로토콜

 주소 체계

 소켓 타입 

 프로토콜 

  TCP

 AF_INET

 SOCK_STREAM 

 0

  UDP

 AF_INET

 SOCK_DGRAM

 0

 

 

 

2. 소켓 닫기

 

소켓을 이용한  통신이 끝나면 관련 리소스를 반환해야 한다.

closesocket() 함수는 해당 소켓을 닫고 관련 리소스를 반환하는 역할을 한다.

 

 

    성공 : 0 , 실패 : SOCKET_ERROR

 

 

'Server > Winodw Network' 카테고리의 다른 글

바이트 정렬 함수  (0) 2015.07.20
소켓 주소 구조체 정의  (0) 2015.07.14
윈도우 소켓 초기화와 종료  (0) 2015.07.14
오류 처리  (0) 2015.07.14
윈도우 소켓  (0) 2015.07.13
admin