Skip to content

Latest commit

 

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2023년도 1학기 네트워크 강의 과제 - ProtoChat

개요

TCP 프로토콜과 클라이언트-서버 기반의 채팅 프로그램.
기본적인 텍스트 채팅과 이미지 전송 기능 제공.
여러 클라이언트가 동시에 연결될 수 있으며, 채팅방 생성과 관리 가능.

  • 목적 : Unity Engine 및 Socket 프로그래밍에 대한 숙련도 향상
  • 개발 기간 : 23.05.15 ~ 23.06.21 (24.10.03 수정 및 보완)
  • 기술 스택
    • Unity: 직관적이고 강력한 게임 개발 엔진으로 빠르게 프로토타이핑이 가능해 선택함.
    • C# & .NET Socket: 네트워크 통신을 구현하는 데 필요한 고성능 소켓 프로그래밍을 지원함.
    • TCP: 안정적인 데이터 전송을 위해 TCP 프로토콜을 사용함.

구현 사항

  • 서버/클라이언트 역할 선택
  • 채팅: 실시간 텍스트 메시지 전송.
    • 이미지 전송: 이미지 파일 전송 및 표시.
  • 채팅방 관리: 방 생성, 참여 기능 제공.
    • 채팅방 생성 시, 입력값 검증 절차를 거침.
  • 사용자 관리: 서버에 연결된 모든 사용자 목록 자동 갱신 및 클라이언트에서 이를 주기적으로 받아와 표시.
  • 연결 상태 모니터링: 클라이언트 연결 상태를 지속적으로 체크, 연결이 끊어질 경우 적절히 처리.
  • UI/UX 최적화

2024-10-03015318-ezgif com-video-to-gif-converter

실행 방법

  1. 서버 모드에서 프로그램을 실행하여 클라이언트 연결을 대기.
  2. 클라이언트 모드에서 서버 IP와 포트를 입력하고 서버에 연결.
  3. 텍스트 또는 이미지를 전송하며 대화.

자체 피드백

  • UDP 미구현: 초기 목표는 TCP와 UDP를 모두 구현하는 것이었지만, TCP 기반으로만 개발을 완료함. UDP의 비연결성 특성을 활용한 통신을 추가적으로 구현하면 더 다양한 네트워크 상황에 대비할 수 있을 것으로 보임.

  • 예외 처리 부족: 프로그램에서 네트워크 오류나 예상치 못한 끊김에 대한 예외 처리가 부족함. 예외 발생 시 좀 더 세밀하게 UI에 반영되고, 사용자가 인지할 수 있도록 개선할 수 있을 것으로 보임.

  • 대규모 사용자 환경에서의 성능: 현재 프로그램은 소규모 사용자 환경에서는 원활하게 작동하지만, 대규모 사용자 환경에서는 성능 최적화가 필요할 것으로 보임.

About

2023년도 1학기 [네트워크] 강의 과제

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages