Download presentation
Presentation is loading. Please wait.
1
실시간 음성 채팅 서비스 (Voice Chatting Programe)
인터넷 소프트 웨어 학과 김현주
2
▒ ▒ ▒ ▒ ▒ 목차 ▒ ▒ ▒ ▒ ▒ 소켓이란? 프로젝트의 기간 및 요구사항 서비스 구성도 프로그램 작동방식 프로그램 분석
참고문헌 및 자료
3
소켓이란? 소켓이란 ? - 소프트웨어로 작성된 통신 접속 점으로 네트워크 응용프로그램은 소켓을 통하는 데이터 송수신
- 소켓은 응용프로그램에서 TCP/IP를 이용하 는 창구 역할하고, 응용프로그램과 소켓 사 이의 인터페이스를 소켓 인터페이스라고 함
4
프로젝트의 기간 및 요구사항 기 간 6월~7월 8월~10월3일 내 용 구현사항 기획 및 설계 소스보완 및 ▒서비스 요구사항 ▒
최종 결과 발표 자료 작성 ▒서비스 요구사항 ▒ - PC, xp,사운드 카드, 마이크, 스피커
5
서비스 구성도 Server Command Source File Command Head File Source Files
vtFunc.cpp vtPlayWave.cpp vtRecWave.cpp Command Source File Command Head File vtDef.h vtWave.h StdAfx.cpp talkclient.cpp talkclient.rc talkclientDlg.cpp Source Files Recource.h StdAfx.h talkclient.h talkclientDlg.h Header Files
6
Client Command Source File vtFunc.cpp vtPlayWave.cpp vtRecWave.cpp
Command Head File vtDef.h vtWave.h StdAfx.cpp talkclient.cpp talkclient.rc talkclientDlg.cpp Source File Recource.h StdAfx.h talkclient.h talkclientDlg.h Header File
7
프로그램 작동방식 Server ① ② ③ Client
8
Client Server 프로그램 작동방식 -2 소켓 생성 소켓 생성 소켓에 IP주소와 Port 할당
클라이언트의 연결 요청을 기다린다 대기 상태 서버의 IP주소와 Port를 설정하여 서버에 연결을 한다 새로운 소켓을 생성하여 클라이언트의 연결 요청을 허용 하고 기존 소켓은 다른 클라이언트의 연결 요청을 기다리며 대기한다. 데이타 송/수신 데이타 송/수신 연결 해제 연결 해제
9
프로그램 분석 프로젝트 생성시 MFC 응용 프로그램 마법사의 고급 기능에 속해 있는 MAPI(메시징 API)와 Windows Socket 항목을 선택하여 소켓을 사용할 수 있도록 해준다.
10
서버(talkserver.exe) 프로그램
- 서버는 소켓을 생성하고 클라이언트의 접속을 대기 한 후 클라이언트가 접속을 하게 되면 서버 의 세션을 통해 다른 클라이언트간의 데이터를 주고 받으며 통신기능을 지원한다. 클라이언트가 메시지 혹은 음성데이터를 보내면 클라이언트에 맞는 프로토콜로 변환하여 송신 측의 클라이언트로 전달하게 된다.
11
서버의 프로토콜이며 현재 세션에 접속 되어있는 사용자의 수를 보여준다. 현재 세션에 접속된 사용자 명을 보여 준다. (퇴장하면 out으로 표시) 프로그램 분석 - 2
12
프로그램 분석 - 3 소켓을 사용하여 데이터를 읽어 들이고 클라이언트 / 서버에게 데이터를 송/수신 하는 커맨드 소스파일. 소켓을 열고 프로토콜 구조를 하며, 프로토콜을 체크하며 소켓 주소를 체크한다. Server vtFunc.cpp vtDef.h 통신에 필요한 주파스를 정의한 소스. talkserver 각종 이벤트 발생 연결 및 디자인 부분 소스.이벤트 발생시 vtFunc와 talkserverDlg에 전달하여 처리하게 한다. 접속된 클라이언트를 표시 혹은 해제하며 클라이언트에게 받은 각종 요청에 대하여 처리 한다.(클라이언트간의 연결 요청등등..) 접속된 두 클라이언트의 세션사이에서 데이터를 통과시킨다. (음성과 메시지 데이터) End Chat 클릭 시 통신이 끊어졌다는 메시지를 클라이언트에게 전달하는 일 등을 한다. talkserverDlg
13
클라이언트(talkcilent.exe) 프로그램
클라이언트(Client)는 서버(Server) IP 주소를 통하여 서버에 접속하여 다른 클라이언트와 메시지 통신과 음성 통신을 하게 된다. 기본적으로 소켓을 사용하여 1:1 메시지 통신, 음성통신을 할 수 있으며 화상통신은 구현되지 않은 상태이다. 프로그램 분석 - 4
14
프로그램 분석 - 5 대화명을 적는다 서버에서 사용하는 프로토콜을 선택한다.
서버의 IP주소, (테스트 시Local Host를 사용함) 서버접속 종료버튼 서버접속버튼 대화상대 선택창 (서버접속자만 나타남) 프로그램 분석 - 5
15
talkclientDlg 프로그램 분석 - 6 프로그램 분석 - 6 보내고자하는 메세지를 기록한다.
Send Text Message 버튼을 통해 메시지를 전달한다. 받은 메시지를 보여준다. 프로그램 분석 - 6
16
프로그램 분석 - 7 talkclientDlg
체크 박스를 체크 하여 음성 통신을 실시한다. 마이크를 연결하여 보내고자 하는 데이터가 프로토콜에 맞게 변환되어 전송되는 상태창이다. 상대방의 음성데이터가 전송되어 지고 있는 상태창이다. 프로그램 종료 버튼이다. talkclientDlg
17
Client 소켓을 사용하여 데이터를 읽어 들이고 클라이언트 / 서버에게 데이터를 송/수신 하는 커맨드 소스파일.
소켓을 열고 프로토콜 구조를 하며, 프로토콜을 체크하며 소켓 주소를 체크한다. vtFunc.cpp 음성 출력의 헤더 구조를 위해 메모리 주소를 정한다. 음성 출력 장치를 셋팅하고 음성 데이터를 수신측에 맞게 출력한다. vtPlayWave.cpp 음성 입력 장치(마이크)를 초기화 하며 셋팅하여 음성을 녹음한다. vtRecWave.cpp vtPlayWave.cpp, vtRecWave.cpp의 기본 클래스로서 음성 데이터 포맷을 정의해 놓은 소스이다. vtWave.h
18
Client 각종 이벤트 발생 연결 및 디자인 부분 소스.이벤트 발생시 vtFunc와 talkclientDlg에 전달하여 처리하게 한다. talkclient 서버에 프로토콜을 사용하여 접속하며 소켓을 할당 받는다. 서버에 맞는 프로토콜을 체크하며 현재 접속한 대화상대를 vtFunc에게 받는다. 접속한 대화상대에게 대화를 요청할 수 있으며 상대방이 요청을 하면 거절할 수 있다. 서버와 통신을 하기 위하여 프로토콜을 선택하여 접속할 수 있으며, 연결을 끊을 수 있다. 상대방과 대화 시 프로토콜을 셋팅하며 vtFunc에게 받은 메시지를 분석하여 알맞은 데이터로 해석하여 읽어 들인다. Voice Talk 체크 박스 체크 시 vtPlayWave, vtRecWave를 통해 음성통신을 할 수 있으며 체크 박스 체크나 체크 해제 했을 시 발생되는 이벤트 등이 담겨져 있다. talkclientDlg 프로그램 분석 - 9
19
참고문헌 및 자료 VISUAL C++ 6.0 완벽 가이드 ㈜영진 출판사 VISUAL C++ 6.0 Bible ㈜삼양 출판사
http//: http//:
Similar presentations