(개인 프로젝트) 클라이언트를 관리하는 서버 프로그램 작성
소개
- 인원 : 1인
- 담당 : 프로그램 구현 전체
- 개발 환경 : Ubuntu 16.04 LTS, VMware Workstation 14 Player
- 문제
- 클라이언트 간의 채팅 프로그램을 기반으로 작성한다.
- 서버는 접속하는 클라이언트가 송신한 메시지를 모두 관리하고 모니터링 한다.
- 클라이언트가 보내는 문자를 모두 기록하고 있으며, 총 문자 수, 보낸 시간 등의 내역을 보관한다.
- 이 외에 서버는 총 접속자 수(클라이언트의 총 접속자 수), 각 클라이언트의 접속 시간, 클라이언트의 IP를 관리한다.
- 클라이언트는 최소 5개 이상 접속이 되도록 작성하시오.
- 소스코드 : Linux에서 Socket으로 채팅구현하기
- 사용법 : Linux에서 Socket으로 채팅구현하기
내용
컴퓨터의 수가 부족하여 부득이하게 로컬에서 다중 클라이언트를 실행하였습니다.
이 중에 가장 오른 쪽 위에 있는 터미널이 서버 역할을 하고 있습니다.
서버에서는 클라이언트가 보내는 메시지를 모두 확인할 수 있습니다.
위 터미널은 서버가 처음 실행되었을 때 나오는 화면이고, 서버는 4가지의 명령어를 사용할 수 있습니다.
help
: 도움말 출력num_user
: 현재 접속한 유저의 수num_chat
: 현재까지 오간 대화의 수ip_list
: 현재 접속한 유저들의 IP
어려웠던 점
이 문제를 해결하면서 어려웠던 점은 기능 구현보다 터미널의 글씨에 색상을 입히는 작업이었습니다. 일반적인 printf
로는 잘 작동하지 않았고, write
나 fprintf(stderr)
을 이용해서 해결하였습니다.
배운 점
이번 프로젝트는 사용자 편의성을 높이는 데에 더욱 집중하였고, 더욱 깔끔한 출력을 하기 위해서 많은 시간을 투자하였습니다. 그러다보니 평소에 습득하지 못했던 지식을 더욱 알아갈 수 있는 계기가 되었고, 실력향상에 많은 도움이 되었습니다.
(개인 프로젝트) 클라이언트를 관리하는 서버 프로그램 작성