(개인 프로젝트) 클라이언트를 관리하는 서버 프로그램 작성

소개

  • 인원 : 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로는 잘 작동하지 않았고, writefprintf(stderr)을 이용해서 해결하였습니다.

배운 점

이번 프로젝트는 사용자 편의성을 높이는 데에 더욱 집중하였고, 더욱 깔끔한 출력을 하기 위해서 많은 시간을 투자하였습니다. 그러다보니 평소에 습득하지 못했던 지식을 더욱 알아갈 수 있는 계기가 되었고, 실력향상에 많은 도움이 되었습니다.

(개인 프로젝트) 클라이언트를 관리하는 서버 프로그램 작성

http://crazythink.github.io/2018/05/18/P-Socket/

Author

Daeyoung Kim

Posted on

2018-05-18

Updated on

2018-05-18

Licensed under

댓글