소켓을 만들어보자

 

1. 소켓 생성

 - 소켓을 이용하여 통신을 하기 위한 요건은 양단이 같은 프로토콜을 사용하는 것이다. socket() 함수는 사용자가 요청한 프로토콜을 이용하여 통신을 할 수 있도록 내부적으로 리소스를 할당하고 이를 접근할 수 있는 일종의 핸들값을 리턴한다. 이 값을 소켓 디스크립터라고 부르며, 각종 소켓 함수를 호출 할 때 인자로 전달하여 사용한다.

 

2. socket()

 - 구조

   SOCKET socket ( int af, int type, int protocol )

   : af

     주소 체계 결졍. (Address Family)

   : type

     소켓의 타입 결정

 - 성공할 경우 0리턴, 아니면 에러코드 리턴

 - 타입 : SOCK_STREAM - TCP, 신뢰성 있고 연결지향적, 대신 느려

             SOCK_DGRAM - UDP, 빠르고 비접속적, 대신 신뢰성이없어

 - 사용하는 프로토콜에 맞춰서 설정하자, TCP or UDP

 - TCP/UDP를 쓸 거기 때문에 af는 AF_INET으로 통일, AF_UNSPEC을 제외하고 프로토콜은 0

 - 함수형태

  : SOCKET tcp_sock = socket(AF_INET, SOCK_STREAM, 0)

  : SOCKET udp_sock = socket(AF_INET, SOCK_DGRAM, 0)




 

3. 예제

#include <Winsock2.h>

 

int main()

{

   // 윈속 초기화

   WSADATA wsa;

   if(WSAStartup(MAKEWORD(2, 2), &wsa) != 0)

      return -1;

 

   printf("윈속초기화 성공~");

   SOCKET tcp_sock = socket(AF_INET, SOCK_STREAM, 0);    // 소켓 tcp연결

   if (tcp_sock == INVALID_SOCKET) printf("연결안됐어잉");

 

   // 윈속종료

   WSACleanup();

   return 0;

}

'Web, Network Programming > Socket' 카테고리의 다른 글

TCP 서버/클라이언트  (0) 2014.06.16
도메인 네임 서버  (0) 2014.06.16
바이트 정렬  (0) 2014.05.29
WS2_32.DLL  (0) 2014.05.29
initSocketLayer  (0) 2014.05.29
Posted by 긍정왕오킹