Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 : 20011294
목차 목적 및 목표 개발환경 프로젝트 수행일정 리눅스 소개 채팅프로그램 구조 소켓과 ipc개념 공유메모리 프로그램 개략도 향후과제 및 시연 iiiphys.inje.ac.kr
목적 및 목표 목적 - 서버/클라이언트의 구조이해 - C언어를 이용한 프로그램의 실무 함양 목표 - 네트웍의 구조 이해 - 서버/클라이언트의 구조이해 - C언어를 이용한 프로그램의 실무 함양 목표 - 네트웍의 구조 이해 - 소켓의 개념 이해 - 소켓을 이용한 다중채팅 구현 iiiphys.inje.ac.kr
iii_chat 개발 환경 - OS : Linux 2.4.13-1hl - Compiler : gcc 2.96 - Vi editer 테스트 환경 - linux 와 linux iiiphys.inje.ac.kr
프로젝트 수행일정 60 50 수행일정 40 30 20 10 iiiphys.inje.ac.kr 2003.11–2004년 2월 10 20 30 40 50 60 주제선정 및 소켓프로그램 이해 프로그램 코딩 테스트 발표준비 2003.11–2004년 2월 2004년 3 - 4월 2004년 5월 iiiphys.inje.ac.kr
채팅프로그램의 전체적 구성 1)채팅프로그램의 기본적 구조 2)소켓의 개념 3) 다중프로세스 처리 방법 - 프로세스란? - 프로세스란? iiiphys.inje.ac.kr
1)기본적 채팅 구조 (서버소켓) bind() Connect() Listen() Accept() Send() Recv() (클라이언트소켓) bind() Connect() Listen() Accept() Send() close() Recv() iiiphys.inje.ac.kr
2)소켓개념 소켓 : 종단 컴퓨터 간의 통신 수단 Connect() ※전화걸기에 비유 Bell : Listen() 개인의고유 전화번호(ip+port) 성공시 Bell : Listen() 받기 :Accept() Connect() client server 통신선 Send/recv ※전화걸기에 비유 iiiphys.inje.ac.kr
3)다중 프로세스 다중프로세스란 ? Fork : 자신의 프로세스를 복사해서 하나의 프로그램이 : 프로세스가 여러개인 경우로, 여러개의 작업을 동시에 처리하는것 Fork : 자신의 프로세스를 복사해서 하나의 프로그램이 동시에 여러개의 업무를 처리 할수 있도록 하는 기법 Select : 입출력 다중화를 처리하는 기법 Polling : select 동일, 좀더 많은 정보를 제공 Thread :프로세스의 경량 버젼 iiiphys.inje.ac.kr
3)다중프로세스(계속) (1) 프로세스의 개념 (2) 프로세스 복제 ☞ process = fork(); ※반환값 ☞ 현재 실행되고 있는 프로그램으로 cpu 자원을 할당받은 상태를 말한다 (2) 프로세스 복제 ☞ process = fork(); ※반환값 process = 0 자식 프로세스 process > 0 부모 프로세스 process < 0 오류 출력 메세지서버 (자식) Fork() (부모) 클라이언트 채팅서버 iiiphys.inje.ac.kr
프로그램 구현 개략도 (server) 1Client Fork() strcpy process1 2 pipe 3 메시지 처리 [PID / MSG] strcpy pipe 2 3 iiiphys.inje.ac.kr
프로그램 구현 개략도(계속) 방입장 로그인 대기실 방입장 메세지서버 방이동 정보 접속자의 정보 방이동 정보 접속자의 정보 방입장 메세지서버 로그인 대기실 방입장 iiiphys.inje.ac.kr
프로젝트 결과 ☞배운점 ☞향후 과제 ☞ 시연 네트웍 프로그램의 전반 이해 시스템 프로그램 알게됨 X window 프로그램으로 GUI 구현 방 만들기 추가 (사용자가 원하는 방) DB연동 ☞ 시연 iiiphys.inje.ac.kr