Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

개요

간단한 채팅 프로그램입니다. 로그인 후 채팅방에 접속해 다른 사용자와 채팅, 파일 업로드, 다운로드를 할 수 있습니다.

Usage

서버 실행 방법

  • Server 프로젝트의 ServAddress.cs 파일을 열어줍니다.
  • ServAddress 클래스의 멤버변수 ip를 서버 컴퓨터의 ip주소로 설정합니다.
  • 빌드를 하고 Server 실행파일을 실행합니다.

클라이언트 실행 방법

  • Client 프로젝트의 ServAddress.cs 파일을 열어줍니다.
  • ServAddres 클래스의 멤버변수 ip를 서버 컴퓨터의 ip주소로 설정합니다.
  • 빌드를 하고 Client 실행파일을 실행합니다.

빠른 실행 방법

  1. socket-chat/Server/bin/Debug/Server.exe 실행
  2. socket-chat/Client/bin/Debug/Client.exe 실행
  3. loop back 주소로 설정되어 있으며 같은 컴퓨터에서 서버와 클라이언트 실행이 가능합니다.

Usage Example

설명

  • 서버와 클라이언트는 C#으로 구현, 멀티스레드 구조, 채팅과 파일 통신은 소켓으로 구현
  • 클라이언트의 UI가 통신에 영향을 받지 않도록 UI 이벤트 스레드와 통신 스레드를 분리
  • 간접적으로 스레드를 다루기 위해 소켓 비동기 함수 사용

프로토콜 설계

Untitled

Async Socket

  • 연결 요청 시 sub-thread에서 연결 요청을 처리하고 다른 연결 요청을 처리하기 위한 BeginAccept 함수를 호출합니다.
  • 소켓 데이터 수신 시 sub-thread에서 수신 작업을 처리하고 수신을 계속하기 위해 BeginRecive 함수를 호출합니다.
  • 따라서 sub-thread에서 반복적으로 sub-thread를 생성시켜 연결 요청과 수신 작업을 수행하도록 합니다.

About

WinForm 기반의 채팅 프로그램

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages