A.클래스 종류 ① CSrvsock클래스 -클라이언트 Receive, Close, Send 처리 ② CListen클래스 -클라이언트 Listen 처리 ③ CClntsock클래스 -서버 Receive, Close, send 처리 ④ CChatDlg클래스 - 게임 선택 및 송수신 클래스 ⑤ CIPDlg 클래스 - 서버 접속 아이피 입력B. 송수신 데이터 패킷 정보 ① 0~2: 게임 진행 상태 (11:게임 진행, 22:승자 발생) ② 2~11: 게임 배열 내용C.화면 ① 서버, 클라이언트 화면(동일) ② Ip 입력 화면
..PAGE:1HSDPAHigh Speed Downlink Packet Access..PAGE:2목차HSDPA 란?HSDPA 의 특징Hybrid Automatic Repeat reQuest (H-ARQ)Node B 스케줄링Adaptive Modulation and Coding (AMC)HSDPA 진화결론..PAGE:3HSDPA 는?W-CDMA가 진화된 방식1초당 최대 14Mb 전송가능2~3Mbps의 속도로 데이터를 전송현재의 기술보다 7배 빨라져 모바일 멀티미디어 서비스를 안정적으로 구현..PAGE:4Fast Hybrid Automatic Repeat Request(H-ARQ)네트워크 프로토콜의 2계층인 데이터 링크 계층에서 사용되는 기법전송 품질의 중요한 척도는 프레임 오류 확률(Frame Error Rate: FER)이다.FER 측면에서 프레임에 단 한 비트의 오류만 존재해도 오류로 처리되므로, FER을 낮추는데 매우 많은 전력이 요구됨HSDPA에서는 동작 영역을 FER 10%로 설정하여, 이 때 발생하는 Packet 오류를 HARQ를 이용하여 수정하는 방법을 사용하여 전송 전력을 크게 낮추었다.Chase Combining ,Incremental Redundancy (IR) 방식을 적용하여 기존의 수신 데이터와 재전송된 수신 데이터를 효율적으로 조합하여 Decoding 성능을 높이게 됨..PAGE:5H-ARQ Combining 방법Chase combiningIncremental Redundancy..PAGE:6Chase Combining송신기이전 데이터재전송다음 데이터전송ACK or NAKACKNAK체널- 체널수신기FEC 복호(오류정정기능)오류검사(CRC)재전송 요구(NAK)ACK신호 전송(ACK)오류데이터저장사용자Failure부호율 2/3추정된 데이터..PAGE:7Incremental Redundancy송신기이전 데이터의다른 부가 정보재전송ACK or NAKACKNAK체널- 체널수신기FEC 복호(오류정정기능)오류검사(CRC)재전송 요구(NAK)ACK신호 전송(ACK)오류데이터저장사용자Failure부호율 2/3추정된 데이터다음 데이터전송재전송된것인가?FEC 복호(오류정정기능)Success부호율 2/3부호율 1/3..PAGE:8Node B 스케쥴링무선 접속 망의 RNC(Radio Network Controller)에 위치함, RNC는 여러 개의 Node-B를 제어하며, 여러 Node-B로부터 수신된 정보를 이용하여 자원 할당 및 조정 기능을 수행HSDPA는 네트워크상의 지연과 , 빠르게 변화하는 채널 환경에 적응하기 위해 스케줄링 기능을 Node-B의 MAC로 이전하였다.전송의 단위를 기존의 10ms에서 2ms로 줄여 Packet 전송 특성에 효과적으로 적응하도록 하였다...PAGE:9AMC전송 전력이 아니라 전송률을 채널 환경에 맞게 변화시키는 방식으로 다양한 전송률, 다양한 전송 품질등의 서비스를 제공한다.채널의 특성에 따라 적절한 전송률을 결정하여 전송하므로 기본적으로 전송 전력은 고정됨전송률은 MCS(Modulation and Coding Selection) 레벨에 의해 결정된다.QPSK, 16QAM의 두 가지 변조 방식과 코드 율 1/3인 Turbo Code를 효율적으로 처리하여 다양한 MCS 레벨을 지원함MCS 레벨은 수신 SIR에 따라 결정되는데, SIR(Signal-to-Interference Ratio)에 따라 가장 높은 효율을 보이는 레벨이 선택됨
// stone=s (바위)// scissors=x (가위)// paper=p(보)#include using namespace std;#include #include #include #include #define WINSCORE 3#define MAX_GAME 20#define MAX_NAME 10#define MAX_PRINT 6#define MAX_PLAYER 10// 필요한 정보// 게임 참가자, 참가자별 점수, 참가자 입력 정보class PlayerInfo{public:int win_score; // 플레이어의 승률char *name; // 게임 플레이어의 아이디char choice[MAX_GAME]; // 플레이어의 선택 (가위, 바위, 보)bool flag_join; // true : 현재 게임 참여PlayerInfo(){ flag_join=false; win_score=0; name=new char[MAX_NAME]; }};//게임 프로그램class FunnyGame{private:int cur_game;int num_player;int re_game;PlayerInfo pi[MAX_PLAYER];public:FunnyGame(); // 생성자 함수~FunnyGame(); // 소멸자자 함수bool FindWinner(); // WINSCORE 이상의 스코어를 가진 플레이어가 있는지 확인void MakeRand(); // 컴퓨터 플레이어의 게임 난수 발생void GameRun(); // 승자가 발생할 시에는 승자 표시후에 게임 종료void Battle(); // 게임 조건 계산void PrintResult(char *status); // 현재 스코어를 화면에 출력void ShowGuide(); // 게임 사용 방법 출력void InputPlayerID(); // 게임인원과 플레이어의 아이디 입력 받음void CasePrint(char choice, int width); // x,s,p를 가위, 바위, 보자기로 바꾸어 출력int CntPlayer(); // 현재 게임에 참여한 인원수 반환};//생성자 함수FunnyGame::FunnyGame(){cur_game=0;re_game=0;}//소멸자 함수FunnyGame::~FunnyGame(){for(int i=0; i
class Omok{private:int arr_OmokPan[MAXROW][MAXCOL];int in_x, in_y;char *player1, *player2;public:Omok();//오목 관련 변수 초기화bool FindWinner(int k);//오목의 승자를 체크void InputPoint();//바둑판 좌표 값을 입력void PrintPoint();//바둑판 및 돌을 화면 출력void InputID();//풀레이어들의 아이디를 입력void BattleGame();//게임void ViewGuide();//게임 방법 표시};//오목 관련 변수 초기화Omok::Omok(){in_x=0;in_y=0;//오목판 초기화for(int i=0;i<MAXROW;i++)for(int j=0;j<MAXCOL;j++)arr_OmokPan[i][j]=0; }