숫자야구게임이 가능한 1대1 채팅프로그램구현
2. 설계 아이디어
3. 프로그램 내용
4. 프로그램 구성과 그 외 중요한 소스들
5. 조원간 작업 분담
6.평가
6. 참고문헌 / web site
VISUAL C++ tool로, TCP/IP를 이용한 채팅 프로그램 제작
2. 설계 아이디어
숫자 야구 게임이 가능한 1:1 채팅 프로그램 구현
3. 프로그램 내용
기본과제인 visual c++의 MFC Socket을 이용해 TCP/IP로 데이터를 전송하는 기능을 구현한다.
서버와 클라이언트가 분리되지 않고 하나로 통합되어 사용이 간편한 프로그램이다.
즉 SocketServer 클래스를 이용해 서버 안에 2개의 가상의 클라이언트를 생성해 데이터를 전송한다. Nate나 MSN 같이 별도의 서버 프로그램이 필요없이 한 종류의 프로그램만으로 통신이 가능한 것이 장점이다.
또한 채팅 기능 외에 접속자 서로가 숫자를 입력해 알아맞히는 야구 게임 기능을 첨가해, 일반 채팅 프로그램의 단조로움을 보완했다. 내가 입력한 숫자 3개를 상대가 모두 맞추면 게임이 끝난다.
위와 같이 내 숫자를 입력하면 수정할 수 없도록 내숫자 항목이 비활성화 되고 게임이 시작된다.
4. 프로그램 구성과 그 외 중요한 소스들
CBaseballApp - base class
CBaseballDlg - window 상에 나타나는 세세한 내용들을 관리한다.
( 야구 게임결과 Presentation, 대화목록 갱신, 소켓 생성...)
CBaseballGame - 실제 게임 결과를 처리하는 클래스
SocketClient - 가상의 파일형식의 데이터를 받아 처리하는 클래스
SocketData - 데이터를 전송하는 기능을 처리하는 클래스
SocketServer - server 안에 가상의 client를 생성하여 통신이 가능하도록 해주는 클래스
※야구게임 결과 처리하는 소스
CBaseBallGame::CBaseBallGame()
{
m_szNumber.Empty();
m_nStatus = 0;
m_pWnd = 0;
}
CBaseBallGame::~CBaseBallGame()
{
}
void CBaseBallGame::Init(CWnd *pWnd, CString szNumber){
m_pWnd = pWnd;
m_nStatus = CHAT_GAMESTART01;
SetNumber(szNumber);
}
CString CBaseBallGame::Guess(CString strGuess){
CString strRtn;
int nStrike = 0;
int nBall = 0;
int length = strGuess.GetLength();
int myLength = m_szNumber.GetLength();
for(int i=0; i
http://www.codeproject.com
http://www.devpia.com
TCP/IP 소켓과 시스템 프로그래밍 - 김형구 지음 / 가메출판사

분야