Dongseo univ. Computer engineering 멀티 데이터 전송 GUI 소켓 애플리케이션 제작 발표일자 2009년 5월 25일 조 원 20031500 신원호 20062525 임윤정 20031723 지원기 Dongseo univ. Computer engineering
1. 수행 필요성 2. 윈속이란? 3. 윈도우 GUI 애플리케이션? 4. 국내 외 현황 5. 개발 계획 목 차 1. 수행 필요성 2. 윈속이란? 3. 윈도우 GUI 애플리케이션? 4. 국내 외 현황 5. 개발 계획 6. 개발 일정 & 개발 환경 7. 참고 문헌 & 분담
1. 수행 필요성 현재까지 공부한 부분에 대한 복습과 함께 이번 프로젝트를 진행하면서 실력을 향상시키고 동시에 윈속 API를 바탕으로 좀 더 복잡하고도 실용적인 GUI형태의 애플리케이션을 작성하는 것이 목적이다. 윈속 API는 메신저, NETWORK GAME, P2P등 다양한 분야에서 사용되는데, 이 프로젝트를 완성해 봄으로써 네트워크 프로그래밍에 대한 이해와 윈도우 프로그래밍에 대한 기술을 습득함으로써 이론적인 지식을 실제 적용해 볼 수 있는 좋은 기회가 될 수 있을 것이다.
2. 윈속 이란? Winsock : 윈도우 운영체계 내에서 인터넷 응용프로그램들의 입출력 요청을 처리하는 프로그래밍 인터페이스 및 지원 프로그램이다. 넷스케이프 & 응용프로그램 윈속은 넷스케이프 브라우저와 같은 응용프로그램과 pc 내의 인터넷 프로그램인 TCP/IP 간에 운영된다. 윈속이 관련된 작업 요청 흐름은 그림의 순서를 따른다. Winsock.dll TCP/IP 모뎀 또는 네트웍 카드 인터넷의 목적지(사이트)
3. 윈도우 GUI 애플리케이션 – (1) 윈도우의 GUI 애플리케이션의 특징 용어 다양한 API(Application Programming Interface)를 이용하여 편리하고 화려한 사용자 인터페이스를 제공 메시지 구동 구조(message-driven architecture)로 동작 용어 API 윈도우 운영체제가 애플리케이션을 위해 제공하는 각종 함수 집합 메시지 애플리케이션의 외부 또는 내부에서 어떤 변화가 발생했음을 해당 애플리케이션에게 알리기 위해 운영체제가 제공하는 개념
3. 윈도우 GUI 애플리케이션 – (2) 1. 외부에서 메시지를 발생시키는 이벤트 발생 시스템 메시지 큐 이벤트 발생 애플리케이션 메시지 큐 #1 메시지 큐 #2 메시지 큐 #3 ... 처리 대기 [그림] 메시지 구동 구조(1) 1. 외부에서 메시지를 발생시키는 이벤트 발생 2. 시스템 메시지 큐에 이 정보가 저장 3. 각각의 GUI 애플리케이션은 메시지 큐를 할당 받음 4. 운영체제는 메시지 큐에 저장된 메시지를 해당 애플리케이션의 메시지 큐로 보냄 5. GUI 애플리케이션은 메시지 큐를 감시, 메시지가 발생해 큐에 들어오면 이를 하나씩 꺼내 처리 6. 메시지가 없다면 대기.
3. 윈도우 GUI 애플리케이션 – (3) GUI 애플리케이션 코드 프로그래머가 작성한 윈도우 프로시저(키보드, 마우스, 메뉴 핸들러…등)에 따라 메시지를 처리 처리하지 않는 메시지의 경우 운영체제가 자동으로 처리 용어 메시지 핸들러(message handler) 메시지를 받았을 때 동작을 결정하는 코드 윈도우 프로시저(window procedure) 메시지 핸들러의 집합
3. 윈도우 GUI 애플리케이션 – (4) [그림] 메시지 구동 구조(2) 이벤트 발생 애플리케이션 #1 시스템 메시지 큐 이벤트 발생 애플리케이션 메시지 큐 #1 메시지 큐 #2 메시지 큐 #3 ... 애플리케이션 #1 메시지 루프 메시지 핸들러 #1 메시지 핸들러 #2 메시지 핸들러 #3 ••• DefWindowProc() 윈도우 프로시저 메시지 큐에서 메시지를 꺼내 키보드메시지를 처리한 후 해당 메시지를 윈도우 프로시저에 전달 메시지를 받았을 때 동작을 결정하는 코드 처리하지 않은 메시지는 이 함수로 넘겨 운영체제가 알아서 처리하도록 함 [그림] 메시지 구동 구조(2)
3. 윈도우 GUI 애플리케이션 – (5) 스레드 1 메시지 루프 메시지 핸들러 #1 메시지 핸들러 #2 메시지 핸들러 #3 ••• DefWindowProc() 윈도우 프로시저 스레드 2 스레드 3 ... 스레드 n 윈도우 메시지 처리 소켓 통신과 데이터 처리 윈도우 메시지를 처리하는 스레드 외에 소켓 통신을 담당하거나 데이터를 처리하는 스레드가 별도로 존재한다. [그림] G UI 소켓 애플리케이션 구조
4. 국내 외 현황 – (1) 종류 - 메신저 프로그램, FTP 프로그램, Telnet 서비스, E-Mail, 네트워크 게임
4. 국내 외 현황 – (2) FTP 프로그램(알FTP, SunnyFTP, TwinFTP, LeapFTP…등)
4. 국내 외 현황 – (3) Telnet & Telnet 접속 프로그램
4. 국내 외 현황 – (4) NetMeeting – 마이크로소프트사에서 제공하는 채팅 솔루션. 음성통화, 비디오 통화, 문자 채팅, 화이트 보드, 응용프로그램 공유, 파일전송 기능 제공
5. 개발 계획 – (1) 서버 : 포트 번호 참조 클라이언트 : IP 주소 와 포트 번호 참조
5. 개발 계획 – (2) - 추가 구현 파일 전송 기능 추가 네트워크 테트리스 게임 그 외 (시간이 있을 시)
6. 개발 일정 & 개발 환경 - 개발 환경 및 도구 H/W : CPU 1.66GHz, RAM 2.00GB, HDD 300GB OS : Windows XP Language : C++ Compiler : Visual Studio 2005 구분 일 정 5월 6월 2주 3주 4주 1주 주제 선정 및 발표 프로그램 코딩 및 구현 테스트 & 수정 및 발표
7. 참고문헌 & 분담 - 교수님 홈페이지 (http://kowon.dongseo.ac.kr/~htlim) - 윈도우 네트워크 프로그래밍, 한빛미디어, 김선우 - 넷미팅 프로그램 (http://msdn.microsoft.com/en-us/library/ms708704.aspx) - 텀즈 (http://terms.co.kr/Winsock.htm) 팀원 : ○ 문서작성, ppt작성 및 발표, 프로그램 코딩, 자료 수집 ○ 프로그램 테스트 & 수정 신원호 팀원 : ○ 문서 작성 및 프로그램 코딩, 자료 수집 ○ 프로그램 테스트 & 수정 임윤정 팀원 : 지원기