winsock2 라이브러리를 활용하여 간단하게 채팅서버를 구현해 보았다.
https://youtu.be/fOAxBkvQnZc?si=SgOIYln8jq_Sh4oa
위의 영상은 결과물을 동영상으로 찍은 것이다.
먼저, 간단하게 구조만 정리해보자.
접속 과정을 그림으로 정리해보았다.
서버에선 listen을 통해 연결 대기열을 만들고 접속을 대기한다.
이후, 클라이언트가 connect함수를 이용해 연결을 시도하면 연결 대기열에 클라이언트가 추가되며,
서버에선 이를 감지하면 accept를 함수를 통해 해당 클라이언트의 접속을 허가해준다.
메세지 송수신 과정을 위 그림과 같다.
특정 클라이언트에서 메세지를 입력하게 되면, 해당 메세지는 서버로 송신된다.
서버는 수신을 대기하고 있다가 메세지를 수신하게 되면, 동일한 메세지를 다른 클라이언트에게 모두 뿌려준다.
다른 클라언트들은 서버로부터 데이터 수신을 대기하고 있다가 메세지를 수신하게 되면 해당 메세지를 채팅기록 자료구조에 저장하여 화면에 렌더링해주면 된다.
정말 간단하면서도 알아야 하는게 많은 프로젝트였다.
네트워크에 대한 기초를 공부하기에 간단한 서버 하나 만들어 본게 꽤나 도움이 많이 된 것 같다.
'프로젝트 > 채팅 서버' 카테고리의 다른 글
프로젝트 : IMGUI를 이용한 채팅 서버 구현 (2 - 클라이언트) (1) | 2024.04.07 |
---|---|
프로젝트 : IMGUI를 이용한 채팅 서버 구현 (1 - 서버) (0) | 2024.04.05 |