티스토리 뷰
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #include <WinSock2.h> #include <iostream> #pragma comment (lib , "ws2_32.lib") void showError(const char * msg) { std ::cout << "에러 : " << msg << std ::endl; exit (-1); } int main() { WSADATA data; ::WSAStartup( MAKEWORD(2, 2), &data); SOCKET server = socket (AF_INET , SOCK_STREAM, IPPROTO_TCP); if (server == INVALID_SOCKET ) showError ("서버 생성 실패" ); sockaddr_in addr = { 0 }; addr.sin_family = AF_INET ; addr.sin_addr.s_addr = inet_addr ("127.0.0.1" ); addr.sin_port = htons(23000); if (bind( server, (sockaddr *)&addr, sizeof(addr)) == SOCKET_ERROR ) showError ("바인딩 실패" ); if (listen( server, SOMAXCONN) == SOCKET_ERROR) showError ("듣기 실패" ); std ::cout << "클라이언트를 기다립니다.." << std::endl; SOCKET client = accept (server, NULL, NULL); closesocket (client); closesocket (server); ::WSACleanup(); return 0;+ } | cs |
구동했을때 클라이언트를 기다립니다. 라는 메세지가 뜨고 프로그램이 대기중에 있으면 올바르게 구동된것이 맞다.
위 코드는 아주 기본적인 콘솔환경에서의 서버 구축 코드인데, 한줄한줄 설명하기에는 너무 힘들어서 이전에 작성된 게시글을 참고하거나, 개인적으로 혹은 댓글을 통해서 질문을 해주면 좋겠다.
간단하게 요약하자면, server라는 이름의 소켓을 TCP로 생성하고, 이 서버의 IP주소를 127.0.0.1 (이 주소를 로컬 호스트라고 한다.) 로 할당한뒤에, 포트번호를 23000으로 할당하고, bind, listen을 한다. 그리고 server로 연결되는 클라이언트를 client라는 이름의 소켓으로 생성한것. 이후에 동작은 아무것도 정하지 않았다. closesocket 이전에 자유롭게 소켓을 사용하면 된다.
이후에 설명 추가하겠음
'C,C++' 카테고리의 다른 글
C/C++ : 콘솔 환경에서 텍스트 컬러 변경 (2) | 2016.06.09 |
---|---|
C++ 소켓 프로그래밍 : 클라이언트 기본 코드 (0) | 2016.05.31 |
C/C++ : 클래스(class) 생성자와 소멸자(Constructor & Destructor) (0) | 2016.04.12 |
C/C++ : 클래스(class)의 개념 (1) | 2016.04.11 |
C/C++ : 구조체(struct)의 개념 (1) | 2016.04.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 파이썬
- 스레드
- UML
- 티그널
- 프로세스
- C++
- 안드로이드
- MFC
- socket
- Sort
- C/C++
- 디렉터리
- 정렬
- 클래스
- 쓰레드
- 파일
- 악보
- 클라이언트
- 자료구조
- 소켓 프로그래밍
- 리눅스
- 소켓
- 라즈베리파이
- 액터
- 티라노 시그널
- 유즈케이스
- C
- 터미널
- 파이썬예제
- 데이터베이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함