Upload
hyunjik-bae
View
2.837
Download
5
Embed Size (px)
Citation preview
클라이언트 - 서버간 통신하기넷텐션
클라 - 서버 연결하기2. m_netClient = new NetClient();m_netClient.Connect();
1. m_netServer = new NetServer();m_netServer.Start();
4. OnJoinServerComplete 이벤트( 인자를 통해 성사여부 확인 )
클라이언트 서버3. OnClientJoin 이벤트
네트워크 연결성공
클라 - 서버 연결 해제1. CNetClient.Disconnect연결 끊을래 ~
3. OnLeaveServer 이벤트즐됐삼ㅜㅜ
클라이언트 서버2. OnClientLeave 이벤트님아 즐
알아야 할 용어들• 서버 주소 (xxx.xxx.xxx.xxx:yyyy)• 프로토콜 버전
HostID• 각 클라의 고유값• 서버
=HostID_Server • 없음 =HostID_None• 3,4,5,6,7,…
3
4
5
6
• 사용자 이름 , 마을 이름 입력• 새 마을 만들기 / 기존 마을 들어가기
호스트간 메시지 주고 받기
두가지 방법• SendUserMessage–메시지 포맷 처리루틴을 사용자가 정의
• RMI–메시지 포맷 처리루틴을 컴파일러가 자동 생성
RMI 사용하기1) 이것을 컴파일하면
2) 이러한 송수신 루틴이 생성됨
C2S
S2C
C2S Proxy C2S Stub
S2C ProxyS2C Stub
클라이언트 서버
• Proxy: 함수 호출을 메시지로 전환 ( 송신자 )• Stub: 메시지를 함수 호출로 전환 ( 수신자 )• C2S: Client-to-server• S2C: server-to-client
RMI 호출하기ID, PW
OK!
4. NotifyLogonSuccess(HostID_Server) 콜백
클라이언트 A
서버
클라이언트 B
1. RequestLogon(HostID_Server, ReliableSend, “ID”, “PW”)서버에게 TCP 처럼 반드시 전송 사용자 정의 인자
2. RequestLogon(A, “ID,”PW”) 콜백A 가 보냈음
3. NotifyLogonSuccess(B, ReliableSend)B 에게
로그온 처리• 본 예제에서는 사용자의 ID 만 입력받음• 물론 , 여러분의 게임에서는 비밀번호도 입력받게 해야 함