본문 바로가기

Programing/Network Programing

[C]서버 클라이언트 모델 네트워크 프로그래밍

1. 개요
이번학기에 배웠던 네트워크 프로그래밍  개념을 총 집합해서
Linux에서 C로 서버-클라이언트 프로그래밍 모델을 만들어서
간단한 채팅 및 게임이 돌아가는 서버/클라이언트 프로그램을 작성해 보았다.
이번학기 네트워크 프로그래밍 과목의 프로젝트이기도 했다.

2. 수행과정
 수행과정을 대략적으로 도식화하여 표현해 보면 아래와 같다.
 


3. 서버
먼저 서버 소스 이다.
서버 소스에서 유의 깊게 봐야 될 부분은
소켓의 생성 및 설정 과정, 소켓의 바인드 하기 위한 정보들의 구조체를 세팅하는 부분,
epoll의 수행과정, 스트링의 가공 등이다.
스트링의 가공은 프로그래머가 가상의 패킷 세팅을 해주기 위해 필요하다고 할 수 있다.



4. 클라이언트
 다음으로 클라이언트 소스이다.
 클라이언트에서는 멀티 쓰레드를 이용해 보았다.
 멀티 쓰레드의 사용방법과 멀티 쓰레드로 채팅을 처리하는 방법 정도를 유의 깊게 보면 되겠다.