Server에서 Socket 만들기

|



 // 사용되는 함수 종류

 // 3. WSAStartup() : 소켓초기화 단계
 // 4. socket()  : 빈소켓만드는 단계
 // 6. bind()  : 빈소켓에 아이피 포트 연결
 // 7. listen()  : 클라이언트 접속 가능하도록 상태변경

// 8. accept()  : 클라이언트 접속대기

 

 

1. Server에 필요한 헤더 

#include <WinSock2.h> 

 

2. 소스코드에서 라이버리 등록

#pragma comment(lib,"ws2_32.lib")

 

3. 윈속 초기화

WSADATA was;  // 윈속 초기화에 필요한 데이터

//첫번째 인자 : 윈속버전 2.2 사용(윈도우98이상 사용)

WSAStartup(MAKEWORD(2,2),&wsa);

 

4. 서버 소켓 생성

//첫번째 인자 : 주소체계 AF_INET(TCP or UDP)

//두번쨰 인자 : TCP UDP 선택 (SOCK_STREAM = TCP )

SOCKET listen_sock = socket(AF_INET, SOCK_STREAM, 0);

 

// 서버 소켓 생성 예외처리

 if( listen_sock == INVALID_SOCKET )
 {
  printf("소켓 생성 실패\n");
  return;

 }

 

5. 서버 아이피 및 포트 설정

SOCKADDR_IN serveraddr;                          // 소켓정보가 들어있는 소켓 구조체

ZeroMemory(&serveraddr, sizeof(serveraddr));  // 구조체 초기화

 

serveraddr.sin_family  = AF_INET;                  // 서버 주소체계

serveraddr.sin_port   = htons(9000);              // 서버 포트
serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 서버 아이피 주소

 

6. bind() : 소켓에 아이피와 지역포트 연결 및 예외처리

//첫번째 인자 : 서버소켓

//두번째 인자 : 소켓구조체

//세번째 인자 : 소켓구조체 사이즈

if( bind(listen_sock,

         (SOCKADDR*)&serveraddr,
         sizeof(serveraddr) ) == SOCKET_ERROR )
 {
  printf("bind 실패\n");
  return;
 }

 

7. listen() : 소켓오픈(소켓과 결합된 tcp포트상태를 클라이언트 접속 가능상태로 변경)

 if( listen(listen_sock, SOMAXCONN) == SOCKET_ERROR )
 {
  printf("listen 실패\n");
  return;
 }

 

8. 서버에 클라이언트 붙이기

// 클라이언트 정보

SOCKET           clinet_sock;

SOCKADDR_IN    clientaddr;

int iSize  = sizeof(clientaddr);

 

while(1)

{

// accept() : 클라이언트 접속대기 상태중(대기)
//            : 클라이언트가 접속하야 다음 진행

//첫번째 인자 : 서버소켓

//두번째 인자 : 클라이언트 구조체 주소

//세번째 인자 :

 clinet_sock = accept(listen_sock,   

                    (SOCKADDR*)&clientaddr,

                       &iSize);

}

 

 

9. 소켓 메모리 해제

// 소켓 종료

closesocket(client_sock);

closesocket(listen_sock);

 

// 윈속 종료

WSACleanup();


저작자 표시 비영리 변경 금지
신고

'Study > Network Programming' 카테고리의 다른 글

Server에서 Socket 만들기  (0) 2013.10.17
윈도우7 windows7 에서 텔넷 telnet 사용하는법  (0) 2013.09.24
Trackback 0 And Comment 0
prev | 1 | ··· | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ··· | 30 | next

티스토리 툴바