===================================================================================================
음성채팅 분석내용이다. 아직 클라이언트만 했지만 일단 큰 흐름은 잡힌것 같다. 파일은 너무 용량이 커서 별첨한다.
중요한 부분이라고 생각한 것의주로 봐봤는데, 실제 일반 소켓통신에 음성을 받아주는 버퍼값만 추가된 정도 같다. 한글문서로 만들엇다가 그대로 복사한 내용이므로 첨부된 한글 파일로 보면 좀더 편할 것이다.
===================================================================
음성채팅 프로그램 분석 [client]
For SSM CodeReading SIG
void CTalkclientDlg::OnBtnconnect() : 서버에 연결하는 부분 설정을 잡고 InitSockets를 호출한다. |
BOOL CTalkclientDlg::InitSockets(int iProtIndex) : 연결을 위해 소켓을 초기화 시킨다.
m_MySock구조체에 소켓을 셋팅 해 준다.
socket() 함수를 통하여 소켓을 생성하고 그 값을 socket에 저장한다.
connect()를 통하여 서버에 연결을 해준다.
WSAAsyncSelect() 비동기 분할 처리 방식으로 소켓을 바꾼다. (이것을 이용하여 다수의 사용자가 동시에 연결 할 수 있게 된다.)
|
void CTalkclientDlg::DoConnection(BOOL bTrue) :연결 했을 때 dialog 상태를 바꾸어 주는 역할만 한다. |
void CTalkclientDlg::OnBtnsend() //전송 버튼을 눌렀을 때 행동
SendVTMessage() 메소드를 호출함으로 메시지를 전송 시킨다.
|
void CTalkclientDlg::OnBtndisconnect() :서버에서 연결을 끊는다.
|
void CTalkclientDlg::OnSelchangeCombchatter() :사용자를 선택
|
void CTalkclientDlg::OnChkvoice() :음성 메시지를 보내는 것을 설정 :일반 메시지보내는 박스를 비활성화 시킴
|
void VTRecordWave::StopRecord(void) :음성 레코드 기록을 멈춤
|
BOOL VTRecordWave::ResetRecord(void) (음성 기록을 상속 시켰으면 좀 편하지 않았을까?)
|
void CTalkclientDlg::EnableTalking(BOOL bTrue) :음성 통신을 위해 상태를 정하는 flag 값이 들어가 있는 곳 :그외엔 별다른 특징 없음 |
void CTalkclientDlg::ParseMsgData(void) :받은 메시지를 파싱해주는 부분
|
LONG CTalkclientDlg::OnVTDataReady(WPARAM wparam, LPARAM lparam) :음성메시지를 위한 응답
Case :
|
LONG CTalkclientDlg::OnVTReadyForWrite(WPARAM wparam, LPARAM lparam) :메시지 쓰기를 위한 준비상태
|
LONG CTalkclientDlg::OnRecordEvent(WPARAM wparam, LPARAM lparam) :MM_WIM_DATA를 위한 준비 WAVEHDR* lpwhdr = (WAVEHDR*)lparam;를 선언해 주고 여기에 받는다.
|
LONG CTalkclientDlg::OnPlayEvent(WPARAM wparam, LPARAM lparam) :MM_WOM_DONE 플레이 버퍼를 완료함
|
'C,C++ ' 카테고리의 다른 글
winsock 에서 사용하는 함수를 linux 소켓에서 사용하기 (0) | 2012.05.22 |
---|---|
ohhara 덤프 코드 출력 코드 헤더 [펌] (0) | 2012.04.27 |
음성 파일 보낼때 음성타입 구조체 (The structure WAVE for Matex) (0) | 2012.04.12 |
calloc vs malloc 함수의 비교 (2) | 2012.03.21 |
MFC에서 중복실행 방지 코드 (0) | 2012.03.21 |