더북(TheBook)

이제 클라이언트와 서버가 연결하는 과정을 코드 레벨로 살펴볼 차례입니다. 먼저 서버를 구동하는 코드입니다.

코드 서버를 구동하는 코드 [C++]

CNetServer* s = CNetServer::Create();      // ➊
param.m_tcpPorts.Add(44444);               // ➋
param.m_udpPorts.Add(44444);
param.m_protocolVersion = Guid(
{ 0x5dca93f4, 0x8133, 0x44a0,{ 0xb5, 0x7b,
0x75, 0x7d, 0x9c, 0x78, 0xd5, 0x2e } });   // ➌
 
s->Start(param);

 

코드 서버를 구동하는 코드 [C#]

NetServer s = new NetServer();              // ➊
param.tcpPorts.Add(44444);                  // ➋
param.udpPorts.Add(44444);
param.protocolVersion = Guid.From({ ... }); // C++ 코드의 ➌과 동일
s.Start(param);

 

은 서버를 생성하는 과정입니다.

는 서버가 네트워크 연결을 받기 위해 사용하는 TCP 리슨 포트(listen port) 값입니다. 출시되는 상업용 게임 서버 중에는 포트를 2개 이상 사용하는 경우도 있어 tcpPorts는 배열 타입입니다.

은 서버와 클라이언트가 모두 맞추어야 하는 프로토콜 버전 값입니다. 이 값은 클라이언트와 서버가 같아야 합니다. 이 값이 서로 다르면 클라이언트는 서버에 접속할 수가 없습니다. OnJoinServerComplete에서 “프로토콜 버전이 틀리다.”라는 오류 값을 받을 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.