안녕하세요 JollyTree입니다 (•̀ᴗ•́)و
1:N 채팅 프로그램은 기본적으로 TCP 프로토콜을 기반으로 1개의 서버가 N개의 클라이언트(사용자)를 지원합니다. 아래 개념도에서와 같이 각 클라이언트는 서버를 통해 서로 채팅 메시지를 주고받을 수 있어요.
■ 채팅 프로그램 기능
다음은 채팅 프로그램의 기본 기능입니다.
- 클라이언트 접속/종료 알림 기능 : 새로운 클라이언트가 접속하거나 접속을 종료하면 모든 클라이언트에게 알림 |
Visual Studio 2019에서 소켓 프로그래밍을 하기 위해서는 Winscok 헤더와 라이브러리를 프로젝트에 추가해야 하는데요. 아래 내용을 참고해 주세요.
■ 윈속(Winsock) 라이브러리 설정하기
윈속 라이브러리(ws2_32.lib)는 Visual Studio 2019를 설치한 환경이라면 추가적으로 설치할 필요 없이 프로젝트에 추가만 해주면 됩니다.
윈속 라이브러리를 프로젝트에 포함시키는 방법은 다음과 같으니 편리한 방법을 선택하여 설정하면 되겠습니다.
#pragma 전처리기(Preprocessor)를 이용한 방법
소스코드 내에 #pragma comment(lib, "ws2_32.lib")를 선언해 줌으로써 윈속 라이브러리 사용이 가능합니다.
#pragma comment(lib, "ws2_32.lib") #include <stdio.h> #include <WinSock2.h> #include <process.h> #include <string.h> |
Visual Studio 2019 프로젝트 설정을 이용한 방법
아래 그림의 Property Pages는 Project-Properties 메뉴(단축키 : Alt+F7)를 통해 열 수 있습니다. ws2_32.lib를 Linker-Input-Additional Dependencies에 아래 그림과 같이 추가해 주세요.
소스코드에는 winsock2.h 헤더가 필요하니 #include <winsock2.h>와 같이 헤더 파일을 소스코드에 추가합니다. 이제 윈속 프로그래밍을 할 준비가 다 되었습니다. 이상 JollyTree였습니다 (•̀ᴗ•́)و