25.07.14 개발일지 / 멀티스레드를 통한 채팅프로그램 구상

2025. 7. 29. 18:36·LMS 7/개발일지

client 에서 구현되어야 할 것들

1. 서버 접속(IN)

2. 회원가입 또는 로그인

> ID/PW 입력

3. 닉네임 설정

> 닉네임 중복 시 재입력

4. 채팅방 목록 요청 및 출력

> /r 명령어로 채팅방 목록 요청

5. 채팅방 생성 기능

> /c <방이름> 명령어로 새 채팅방 생성

6. 채팅방 선택 후 입장

7. 전체 채팅 메시지 전송

> 본인이 입력한 문자열을 채팅방 내 모든 사용자에게 전송

8. 귓속말 전송

> /w <닉네임> <메시지> 입력 시 특정 사용자에게만 전송

9. 채팅방 나가기

> /e 등으로 현재 채팅방 퇴장

10. 명령어 도움말 출력

/help 명령어로 사용 가능한 명령어 목록 표시

11. 서버 종료 또는 비정상 종료 감지 및 대응

서버 접속이 끊긴 경우 사용자에게 안내 메시지 출력 후 종료

12. 서버 접속(OUT)


server 에서 구현되어야 할 것들

1. 클라이언트 접속 대기 및 처리 (멀티 클라이언트)

2. 회원가입 및 로그인 처리

> mysql db를 통해 회원정보를 저장 혹은 구별을 위해 사용

3. 닉네임 등록 및 중복검사

> 닉네임은 서버 메모리에 별도 저장

> 저장된 닉네임 중 중복된 닉네임인 경우 거부, 새 닉네임 요청

4. 채팅방 관리

> 채팅방 목록 유지 및 생성 처리

> 채팅방마다 참가자 목록 관리

5. 클라이언트 채팅방 입장 안내

> 입장 시 닉네임 포함 안내 메시지 브로드캐스트

6. 메시지 구분 및 처리

> 전체 메시지 / 귓속말(/w, /W) 구분

> 귓속말 대상이 존재하지 않으면 오류 전송

7. 메시지 전송

> 전체 메시지는 해당 방 사용자 전체에 전송

> 귓속말은 지정한 사용자에게만 전송

> 메시지 최대 길이: 512바이트 제한

8. 클라이언트 접속/종료 및 퇴장 처리

> 채팅방 나가기(/e, /E)

> 서버 종료 요청(/q, /Q)

> 비정상 종료 클라이언트 정리

8-2. 채팅방 나가기 시 모든 접속 클라이언트에게 해당 유저 정보 출력

9. 접속 클라이언트 목록 유지

> 닉네임, 파일 디스크립터 등 정보 저장

'LMS 7 > 개발일지' 카테고리의 다른 글

25.07.16 개발일지 / 채팅 프로그램 5팀  (0) 2025.07.29
2025.07.15 개발일지 [채팅 프로그램 5팀 / 테이블 명세서 / ERD]  (0) 2025.07.29
25.07.12 학습일지 / mySQL, C  (0) 2025.07.29
25.07.10 학습개발일지 / mySQL  (0) 2025.07.28
25.07.08 학습개발일지 / thread  (5) 2025.07.28
'LMS 7/개발일지' 카테고리의 다른 글
  • 25.07.16 개발일지 / 채팅 프로그램 5팀
  • 2025.07.15 개발일지 [채팅 프로그램 5팀 / 테이블 명세서 / ERD]
  • 25.07.12 학습일지 / mySQL, C
  • 25.07.10 학습개발일지 / mySQL
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
25.07.14 개발일지 / 멀티스레드를 통한 채팅프로그램 구상
상단으로

티스토리툴바