개요
-  이것은 기본적으로 장기 게임 클라이언트를 위해 만들어 지고 있습니다. 
- 
 
해결과제
-  사용자의 장기알 움직이는 위치 검증하고 옮기기  
 
프로토콜
	
	
		| 아이템 | 값 | 설명 | 
	
	
		| 메시지 구분자 | | | 전송된 메시지를 구분하는 delimeter 문자입니다. | 
	
	
		| 상태코드 | 설명 | 전송자 | Defines NAME (편의를 위해) | 
	
	
		| 0001 | 접속 환영 메시지 | SERVER | WELCOME_MSG | 
	
		| 0010 | 인증 요청 | CLIENT | AUTH_CONFIRM | 
	
		| 0011 | 인증 결과 | SERVER | AUTH_CONFIRM_ALT | 
	
		| 0012 | 인증 성공 |  | AUTH_SUCCESS | 
	
		| 0013 | 인증 실패 |  | AUTH_FAIL | 
	
		| 0014 | 요청 작업 성공 |  | SUCCESS | 
	
		| 0015 | 요청 작업 실패 |  | FAIL | 
	
		| 0016 | 방 인원이 꽉참 |  | FULL_ROOM_IN_CLIENT | 
	
		| 0017 | 방 ID 오류 |  | INVALID_ROOM_ID | 
	
		| 0018 | 방 비밀번호 오류 |  | INVALID_ROOM_PWD | 
	
		| 19 | 존재 |  | EXIST | 
	
		| 20 | 존재하지않음 |  | EXIST_NONE | 
	
		| 1000 | 방 생성 요청 | CLIENT | CREATE_ROOM_REQ | 
	
		| 1001 | 방 생성 요청 응답 | SERVER | CREATE_ROOM_RES | 
	
		| 1010 | 일반 방 |  | ROOM_STANDARD | 
	
		| 1011 | 비밀 방 |  | ROOM_SECERT | 
	
		| 1012 | 방 생성 성공 |  | ROOM_CREATE_SUCCESS | 
	
		| 1013 | 방 생성 실패 |  | ROOM_CREATE_FAIL | 
	
		| 1014 | 방 퇴장 요청 | CLIENT | EXIT_ROOM_REQ | 
	
		| 1015 | 방 퇴장 응답 | SERVER | EXIT_ROOM_RES | 
	
		| 1016 | 방 참여 요청 | CLIENT | JOIN_ROOM_REQ | 
	
		| 1017 | 방 참여 응답 | SERVER | JOIN_ROOM_RES | 
	
		| 1018 | 방 참여 알림 | SERVER | JOIN_ROOM_BRC | 
	
		| 1019 | 방 퇴장 알림 | SERVER | EXIT_ROOM_BRC | 
	
		| 1200 | 로비 정보 요청 | CLIENT | LOBBY_INFO_REQ | 
	
		| 1201 | 로비 정보 응답 | SERVER | LOBBY_INFO_RES | 
	
		| 1202 | 로비 대기 사용자 리스트 요청 | CLIENT | LOBBY_WAITING_USER_LIST_REQ | 
	
		| 1203 | 로비 대기 사용자 리스트 응답 | SERVER | LOBBY_WAITING_USER_LIST_RES | 
	
		| _ |  |  |  | 
	
		| 1300 | 메시지 전송(BRC) | SERVER | SERVER_MSG_BRC | 
	
		| 1302 | 메시지 전송 요청(지정) | CLIENT | NOTE_MSG_SEND_REQ | 
	
		| 1303 | 메시지 전송 응답(지정) | SERVER | NOTE_MSG_SEND_RES | 
	
		| 1304 | 메시지 전송 요청(방) | CLIENT | ROOM_IN_MSG_BRC_REQ | 
	
		| 1305 | 메시지 전송 (방) | SERVER | ROOM_IN_MSG_BRC | 
	
		| 1306 | 채팅 메시지 전송 요청 (방) | CLIENT | ROOM_CHAT_MSG_REQ | 
	
		| 1307 | 채팅 메시지 도착  (방) | SERVER | ROOM_CHAT_MSG_BRC | 
	
		| 1308 | 채팅 메시지 전송 요청 (로비) | CLIENT | LOBBY_CHAT_MSG_REQ | 
	
		| 1309 | 채팅 메시지 도착 (로비) | SERVER | LOBBY_CHAT_MSG_BRC | 
	
		| _ |  |  |  | 
	
		| 1401 | 클라이언트 정보 요청 | CLIENT | CLIENT_INFO_REQ | 
	
		| 1402 | 클라이언트 정보 응답 | SERVER | CLIENT_INFO_RES | 
	
		| 1403 | 내 클라이언트 정보 요청 ( 인증후 획득 정보 ) | CLIENT | MY_CONN_CLIENT_INFO_REQ | 
	
		| 1404 | 내 클라이언트 정보 응답 ( 인증후 획등 정보 ) | SERVER | MY_CONN_CLIENT_INFO_RES | 
	
		| _ |  |  |  | 
	
		| 1501 | 게임 시작 요청 | CLIENT | GAME_START_REQ | 
	
		| 1502 | 게임 시작 | SERVER | GAME_START_BRC | 
	
		| 1503 | 게임 시작 요청 응답 | SERVER | GAME_START_RES | 
	
		| 1504 | 게임 종료 알림 | SERVER | GAME_END_BRC | 
	
		| _ |  |  |  | 
	
		| 2001 | 장기알 이동 요청 | CLIENT | MOVE_UNIT_REQ | 
	
		| 2002 | 장기알 이동 요청 응답 | SERVER | MOVE_UNIT_RES | 
	
		| 2003 | 장기알 이동 알림 | SERVER | MOVE_UNIT_BRC | 
	
		| 2004 | 제한시간 초과 알림 | SERVER | OVER_ATTACK_TIME_BRC | 
	
		| 2005 | 공격 자 알림 | SERVER | ATTACKER_PARTY_BRC | 
	
		| _ |  |  |  | 
	
		| 7001 | 시간 동기화 요청 | CLIENT | SYNC_TIME_REQ | 
	
		| 7002 | 시간 동기화 응답 | SERVER | SYNC_TIME_RES | 
	
		| 7003 | 시간 동기화 테스트 요청 | CLIENT | SYNC_TIME_TEST_REQ | 
	
		| 7004 | 시간 동기화 테스트 응답 | SERVER | SYNC_TIME_TEST_RES | 
	
		| 7100 | 대전 시작 동기화 알림 | SERVER | SYNC_GAME_INF | 
	
		| 7101 | 대전 시작 동기화 준비 완료 | CLIENT | SYNC_GAME_INF_RDY | 
	
		| 7102 | 공격 포진 선택 | CLIENT | SYNC_ATTACK_POSITION | 
	
		| 7104 | 진영 정보 알림 | SERVER | SYNC_CLIENT_PARTY_INF | 
	
		| 7105 | 장기알 배치 정보 통보 | SERVER | SYNC_JANGGIAL_POSITION_INF | 
	
		| 7106 | 동기화 끝 | SERVER | SYNC_END | 
	
		| _ |  |  |  | 
	
		| 8000 | 상마,상마 |  | POSITION_SMSM | 
	
		| 8001 | 마상,마상 |  | POSITION_MSMS | 
	
		| 8002 | 상마,마상 |  | POSITION_SMMS | 
	
		| 8003 | 마상,상마 |  | POSITION_MSSM | 
	
		| 8004 | 한나라 진영 |  | POSITION_HAN | 
	
		| 8005 | 초나라 진영 |  | POSITION_CHO | 
	
		| 9000 | 서버 Garbage Collection 기동 | CLIENT | SERVER_EXECUTE_GC | 
 
접속 환영 메시지
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id |  | 
	
		| 필수 | 메시지 | 환영 메시지 | 
 
인증 요청
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id |  | 
	
		| 필수 | 로그인 이름 | 인증 요청할 로그인 이름 | 
	
		| 필수 | 열쇠 글 | 인증 열쇠글 | 
 
인증 요청 결과
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | AUTH_CONFIRM_ALT | 
	
		| 필수 | 처리 결과 | AUTH_SUCCESS ( 0012 ), AUTH_FAIL ( 0013 ) | 
	
		| 필수 | key | 인증 성공후 부여받은 클라이언트 키 | 
 
방 생성 요청
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | CREATE_ROOM_REQ | 
	
		| 필수 | 방 이름 |  | 
	
		| 필수 | 인원 |  | 
	
		| 필수 | 방종류 | ROOM_STANDARD, ROOM_SECERT | 
 
방 생성 응답
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | CREATE_ROOM_RES | 
	
		| 필수 | 처리 결과 | SUCCESS, FAIL | 
 
방 퇴장 요청
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | EXIT_ROOM_REQ | 
 
방 퇴장 요청 응답
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | EXIT_ROOM_RES | 
 
방 참여 요청
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | JOIN_ROOM_REQ | 
	
		| 필수 | 방 번호 | 참여 방 번호 | 
 
방 참여 요청 응답
	
	
		| 구분 | 필드명 | 데이타 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | JOIN_ROOM_RES | 
	
		| 필수 | 처리 결과 | int | 4byte | SUCCESS, FAIL | 
	
		| 옵션 | 에러 코드 | int | 4byte | FULL_ROOM_IN_CLIENT, INVALID_ROOM_ID, INVALID_ROOM_PWD | 
	
		| 옵션1 | 클라이언트 수 | int | 4byte | 방안의 클라이언트 수 | 
	
		| 옵션2 | 키 | int | 4byte | 클라이언트 키 | 
	
		| 옵션1 | 아이디 | String | n byte | 클라이언트 아이디 | 
 옵션2 부분은 처리결과 코드가 SUCCESS 일경우 옵션 2의 값에 따라 반복됨 
 
방 참여 알림 ( SERVER )
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | JOIN_ROOM_BRC | 
	
		| 필수 | 키 | 클라이언트 KEY | 
	
		| 필수 | 아이디 | 표시 아이디 | 
 
방 퇴장 알림
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | EXIT_ROOM_BRC | 
	
		| 필수 | 키 | 클라이언트 KEY | 
	
		| 필수 | 아이디 | 표시 아이디 | 
 
로비 정보 요청
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | LOBBY_INFO_REQ | 
	
		| 필수 | 페이지 |  | 
 
로비 정보 응답
	
	
		| 구분 | 필드명 | 데이타 티입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4 byte | LOBBY_INFO_RES | 
	
		| 필수 | 유저수 | int | 4 byte | 전체 유저 수 | 
	
		| 필수 | 대기자 | int | 4 byte | 대기중인 유저 수 | 
	
		| 필수 | 개설 룸 수 | int | 4 byte | 개설되어 져 있는 룸 수 | 
	
		| 옵션 | 방 번호 | int | 4 byte | 개설 방 번호 | 
	
		| 옵션 | 방 제목 | String | n byte | 방제목 | 
	
		| 옵션 | 닉네임 | String | n byte | 방 개설자 닉네임 | 
	
		| 옵션 | 참여 인원 | int | 4 byte | 현재 참여 인원 수 | 
	
		| 옵션 | 최대 참여 인원 | int | 4 byte | 최대 참여 가능한 인원 수 | 
	
		| 옵션 | 방 종류 | int | 4 byte | ROOM_STANDARD, ROOM_SECERT | 
 
로비 대기 사용자 리스트 요청 ( CLIENT )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4 byte | LOBBY_WAITING_USER_LIST_REQ | 
 
로비 대기 사용자 리스트 응답 ( SERVER )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4 byte | LOBBY_WAITING_USER_LIST_RES | 
	
		| 필수 | 대기자 | int | 4 byte | 대기중인 유저 수 | 
	
		| 옵션 (반복) | 키 | int | 4 byte | 클라이언트 키 | 
	
		| 옵션 (반복) | 아이디 | String | n byte | 사용자 아이디 | 
	
		| 옵션 (반복) | 닉네임 | String | n byte | 사용자 닉네임 | 
 
메시지 전송 요청 (방) deprecated
방안의 유저들에게 메시지를 전송함. ( 방에 들어가 있지 않을경우 무시 되도록 처리 필요 )
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | ROOM_IN_MSG_BRC_REQ | 
	
		| 필수 | 메시지 | 방안의 클라이언트 들에게 brodecas 할 메시지 | 
 
메시지 전송 (방) deprecated
	
	
		| 구분 | 필드명 | 비고 | 
	
	
		| 필수 | protocol id | ROOM_IN_MSG_BRC | 
	
		| 필수 | 키 | brodecast 메시지를 전송한 클라이언트 키 | 
	
		| 옵션 | 메시지 | 메시지 | 
 
채팅 메시지 전송 요청 ( 방 )
요청자를 제외한 방안의 클라이언트 들에게 전송함 ( 방에 들어가 있지 않을경우 무시 되도록 처리 필요 )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | ROOM_CHAT_MSG_REQ | 
	
		| 필수 | 전송 메시지 | String | n byte |  | 
 
채팅 메시지 도착 ( 방 )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4 byte | ROOM_CHAT_MSG_BRC | 
	
		| 필수 | 전송자 식별키 | int | 4byte |  | 
	
		| 필수 | 별칭 | String | n byte |  | 
	
		| 필수 | 메시지 | String | n byte |  | 
 
채팅 메시지 전송 요청 ( 로비, CLIENT )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4 byte | LOBBY_CHAT_MSG_REQ | 
	
		| 필수 | 전송 메시지 | String | n byte |  | 
 
채팅 메시지 도착 ( 로비, SERVER )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4 byte | LOBBY_CHAT_MSG_BRC | 
	
		| 필수 | 전송자 식별키 | int | 4 byte |  | 
	
		| 필수 | 별칭 | String | n byte |  | 
	
		| 필수 | 메시지 | String | n byte |  | 
 
클라이언트 정보 요청 ( CLIENT )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | CLIENT_INFO_REQ | 
	
		| 필수 | key | int | 4byte | 조회할 클라이언트 키 | 
 
클라이언트 정보 응답 ( SERVER )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | CLIENT_INFO_RES | 
	
		| 필수 | 처리결과 | int | 4byte | SUCCESS, FAIL | 
	
		| 옵션 | key | int | 4byte | 클라이언트 키 (인증성공시 부여 받는 키 ) | 
	
		| 옵션 | id | String | n byte | 인증되어 있는 id | 
	
		| 옵션 | 닉네임 | String | n byte | 닉네임 | 
	
		| 필수 | 승리회수 | int | 4byte | 대전 승리 회수 | 
	
		| 필수 | 패배 회수 | int | 4byte | 대전 패배 회수 | 
	
		| 필수 | 이미지 여부 | int | 4byte | 이미지 존재 여부 EXIST, EXIST_NONE | 
	
		| 필수 | 이미지 주소 | String | n byte | 이미지저장 위치 (http) | 
 
내 클라이언트 정보 요청 ( CLIENT )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | MY_CONN_CLIENT_INFO_REQ | 
 
내 클라이언트 정보 응답 ( SERVER )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocold id | int | 4byte | MY_CONN_CLIENT_INFO_RES | 
	
		| 필수 | 처리 결과 | int | 4byte | SUCCESS, FAIL | 
	
		| 필수 | 아이디 | String | n byte | 아이디 | 
	
		| 필수 | 닉네임 | String | n byte | 닉네임 | 
 
게임 시작 요청
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | GAME_START_REQ | 
 
게임 시작 요청 응답
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | GAME_START_RES | 
	
		| 필수 | 결과 | int | 4byte | SUCCESS, FAIL | 
 
게임 시작
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | GAME_START_BRC | 
	
		| 필수 | 기준시간 | long | 8byte | (ms) time | 
	
		| 필수 | delay 시간 | int | 4byte | ~초(ms) 후 실행 | 
 
게임 종료 알림
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | GAME_END_BRC | 
	
		| 필수 | 승자의 진영 | int | 4byte | POSITION_HAN , POSITION_CHO | 
	
		| 필수 | 키 | int | 4byte | 승자의 키 | 
	
		| 필수 | 이름 | String | n byte | 승자의 이름(닉네임) | 
 
장기알 이동 요청 ( CLIENT )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | MOVE_UNIT_REQ | 
	
		| 필수 | 현위치 x | int | 4byte | 현재 위치 x | 
	
		| 필수 | 현위치 y | int | 4byte | 현재 위치 y | 
	
		| 필수 | 이동 위치 x | int | 4byte | 이동할 위치 x | 
	
		| 필수 | 이동 위치 y | int | 4byte | 이동할 위치 y | 
 
장기알 이동 요청 응답 ( SERVER )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | MOVE_UNIT_RES | 
	
		| 필수 | 요청 응답 | int | 4byte | SUCCESS, FAIL | 
 
장기알 이동 알림의 ( SERVER )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | MOVE_UNIT_BRC | 
	
		| 필수 | 현 위치 x | int | 4byte | 현재 위치 x | 
	
		| 필수 | 현 위치 y | int | 4byte | 현재 위치 y | 
	
		| 필수 | 이동 위치 x | int | 4byte | 이동할 위치 x | 
	
		| 필수 | 이동 위치 y | int | 4byte | 이동할 위치 y | 
 
시간 동기화 요청
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_TIME_REQ | 
 
시간 동기화 응답
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_TIME_RES | 
	
		| 필수 | 서버시간 | long | 8byte | long time | 
 
시간 동기화 테스트 요청
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_TIME_TEST_REQ | 
	
		| 필수 | 기준 시간 | long | 8byte |  | 
	
		| 필수 | 시간 | int | 4byte | (ms) 시간후 alert 할 시간 | 
 
시간 동기화 테스트 요청
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_TIME_TEST_RES | 
	
		| 필수 | 기준 시간 | long | 8byte |  | 
	
		| 필수 | 시간 | int | 4byte | (ms) 시간후 alert 할 시간 | 
 
대전 시작 동기화 알림 ( SERVER )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_GAME_INF | 
 
대전 시작 동기화 준비 완료 알림 ( CLIENT )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_GAME_INF_RDY | 
	
		| 필수 | sync time | long | 8byte | 준비 완료 시점 시간(동기화된 시간) | 
 
공격 포진 선택 (CLIENT)
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_ATTACK_POSITION | 
	
		| 필수 | 진영 정보 | int | 4byte | POSITION_SMSM, POSITION_MSMS, POSITION_SMMS, POSITION_MSSM | 
 
진영 정보 알림 (SERVER)
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_CLIENT_PARTY_INF | 
	
		| 필수 | 진영 | int | 4byte | POSITION_HAN, POSITION_CHO | 
 
장기알 배치 정보 통보 (SERVER)
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_JANGGIAL_POSITION_INF | 
	
		| 필수 | 한(漢)진영 | int | 4byte | POSITION_SMSM, POSITION_MSMS, POSITION_SMMS, POSITION_MSSM | 
	
		| 필수 | 초(楚)진영 | int | 4byte | POSITION_SMSM, POSITION_MSMS, POSITION_SMMS, POSITION_MSSM | 
 
동기화 끝 (SERVER)
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SYNC_END | 
 
서버 Garbage Collection 기동 ( Client )
	
	
		| 구분 | 필드명 | 데이터 타입 | 크기 | 비고 | 
	
	
		| 필수 | protocol id | int | 4byte | SERVER_EXECUTE_GC | 
 
동기화
게임 시작시
-  대전 시작 동기화 알림 ( Server ) 
-  대전 시작 동기화 준비 완료 알림 ( Client ) 
-  포진 선택 ( Client ) 
-  진영 통보 ( Server ) 
-  장기알 배치 정보 통보 ( Server ) 
-  동기화 끝, 게임시작 ( Server ) 
 
시간 동기화
-  시간 동기화 요청 ( Client ) 
-  시간 전송 ( Server ) 
-  지연 시간 계산후 자체 time 적용 ( Client )