목록C++/Windows 게임서버 (10)
나만의 작은 도서관

목차UDP echo 서버 만들기echo 서버에 데이터 전송해보기(Unconnected UDP)echo 서버에 데이터 전송해보기(Connected UDP)깃헙코드UDP echo 서버 만들기 이번에는 TCP가 아닌, UDP를 이용한 echo 서버를 만들어 보도록 하겠다. Winsock 초기화, 소켓 생성Winsock을 사용하려면 항상 초기화를 해줘야하기 때문에 Wincosk 초기화를 하고, 통신을 위한 소켓을 생성한다. 이부분은 TCP때에서 SOCK_STREAM -> SOCK_DGRAM 변경을 제외한 다른 부분은 동일하다.// Winsock 초기화WSAData wsaData; if (::WSAStartup(MAKEWORD(2, 2), &wsaDa..

목차echo 서버 만들기echo 서버에 데이터 전송해 보기send(), recv()의 특징깃헙 코드echo 서버 만들기echo 서버란 클라이언트가 전송해 주는 데이터를 그대로 되돌려주는 서버이다. echo 서버를 만들기 위해 클라이언트가 전송한 데이터를 받는 recv(), 받은 데이터를 재전송해 주는 send()를 순서대로 사용한다. +) 클라이언트, 서버 예제 코드들은 이전 글들에서 작성한 코드 위에서 작성되었다. 데이터 수신하기: recv()recv() 함수를 이용해 클라이언트가 전송한 데이터를 받는다. recv() 함수를 사용하기 위해서는 4가지 인자가 필요한데 각각 다음과 같다.recv( _In_ SOCKET s, _Out_writes_bytes_to_(len, return) __out..

개요서버는 마치 식당과도 같다. 식당에서 손님이 오면 손님을 받아 자리로 안내하는 것처럼 서버는 연결 요청을 한 소켓을 연결하고, 손님이 주문한 음식을 만들어 해당 자리에 서빙하는 것처럼, 요청한 작업을 처리하여 해당 소켓으로 처리된 데이터를 전송한다. 이 글에서는 식당으로 비유하며 클라이언트-서버 구조에서 각각 어떻게 통신을 연결하는지 간단히 정리해보고자 한다. 소켓(socket)이란? 소켓은 통신의 극점이며, 통신을 주고받으려면 반드시 필요한 개체이다(핸드폰으로 자주 비유되곤 한다. 식당 비유에 맞게 비유하자면 한 사람이라고 보면 된다). 각 소켓은 IP 주소 + 포트 번호 조합으로 구별하며, 통신을 통해 컴퓨터가 데이터를 수신하면 해당 포트를 사용하는 프로세스를 찾아 작업을 수행한다. 전화를 걸..

목차Winsock이란Winsock을 이용한 서버 열기클라이언트를 서버에 연결하기깃헙 코드Winsock이란?Winsock은 윈도우 환경에서 통신하기 위해 MS에서 제작한 소켓 라이브러리이다. Winsock을 사용하기 위해 다음과 같은 헤더 및 라이브러리를 추가하면 된다. 다음 목차부터 작성하는 클라이언트, 서버 코드엔 해당 및 라이브러리가 추가된 상태로 작성하였다.// Winsock 통신을 위한 헤더들#include #include #include #pragma comment(lib, "ws2_32.lib") +) 참고로, 여기저기 WSA로 시작하는 함수나 타입들이 잔뜩 나올텐데 WSA는 WinSock API의 약자이다.Winsock을 이용한 서버 열기winsock 초기화Winsock을 사용해 통신하기 위..