Proud::CNetConnectionParam 클래스 참조

Public 속성

String m_serverIP
 
uint16_t m_serverPort
 
String m_publicDomainName1
 
String m_publicDomainName2
 
 
CFastArray< int > m_localUdpPortPool
 
Guid m_protocolVersion
 
ByteArray m_userData
 
bool m_slowReliableP2P
 
int m_tunedNetworkerSendIntervalMs_TEST
 
bool m_simplePacketMode
 Simple network protocol mode.
 
bool m_allowOnExceptionCallback
 
String m_clientAddrAtServer
 
bool m_enableAutoConnectionRecovery
 
ThreadModel m_userWorkerThreadModel
 
ThreadModel m_netWorkerThreadModel
 
CThreadPoolm_externalUserWorkerThreadPool
 
CThreadPoolm_externalNetWorkerThreadPool
 
uint32_t m_timerCallbackIntervalMs
 
int32_t m_timerCallbackParallelMaxCount
 
void * m_timerCallbackContext
 

상세한 설명

서버에 연결하기 위한 정보 구조체

멤버 데이타 문서화

bool Proud::CNetConnectionParam::m_allowOnExceptionCallback
  • OnException 콜백 기능을 사용할 지 여부를 선택합니다.
  • 기본값은 true입니다.
  • 만약 false를 지정하면 유저 콜백에서 예상치 못한 Exception 발생 시 OnException이 호출되지 않고 크래시가 발생합니다.
String Proud::CNetConnectionParam::m_clientAddrAtServer

서버와 클라이언트가 NAT 라우터 뒤에 있는 상태에서 다른 클라이언트와 P2P 통신을 해야 할 경우 필요할 수 있습니다. 가령 클라이언트가 게임 플레이를 처리하는 super peer가 되어야 하는 경우, 그리고 super peer와 서버가 같은 host인 경우, super peer 안에서는 여기에 super peer의 public 주소를 넣으시기 바랍니다.

bool Proud::CNetConnectionParam::m_enableAutoConnectionRecovery

연결 유지 기능 사용하기 를 켜거나 끕니다. 기본적으로 꺼져 있습니다.

CThreadPool* Proud::CNetConnectionParam::m_externalNetWorkerThreadPool

네트워크 I/O 처리를 사용자의 쓰레드 풀에서 작동 하도록 합니다. m_netWorkerThreadModel 에서 ThreadModel_UseExternalThreadPool 지정 시 반드시 이 값을 세팅 해야 합니다.

CThreadPool* Proud::CNetConnectionParam::m_externalUserWorkerThreadPool

RMI, 이벤트 콜백 등 다양한 작업을 사용자의 쓰레드 풀에서 작동 하도록 합니다. m_userWorkerThreadModel 에서 ThreadModel_UseExternalThreadPool 지정 시 반드시 이 값을 세팅 해야 합니다.

CFastArray<int> Proud::CNetConnectionParam::m_localUdpPortPool

클라이언트에서 생성하는 UDP socket이 사용할 local port 번호들입니다.

이 모듈은 서버나 peer와의 연결 각각을 위해 1개의 UDP port를 사용합니다. 이때 m_localUdpPortPool 에서 지정한 포트 번호들을 local port로 삼는 UDP socket들을 생성하게 됩니다. 만약 m_localUdpPortPool에서 시정한 포트 번호가 없거나 m_localUdpPortPool에서 지정한 포트 번호들이 모두 다른데서 사용중인 경우 임의의 포트 번호가 지정되어 UDP socket이 생성됩니다.

일반적으로는 m_localUdpPortPool 값은 그냥 두시는 것이 좋습니다. 하지만 의도적으로 local UDP socket의 port 번호를 강제로 지정하고자 할 때 m_localUdpPortPool 안에 원하시는 값들을 넣으십시오.

ThreadModel Proud::CNetConnectionParam::m_netWorkerThreadModel

네트워크 I/O 처리 작업에 대한 쓰레드 모델을 지정합니다.

  • SingleThreaded 지정시 사용자는 NetClient.FrameMove 함수를 호출 할 때 I/O 처리를 합니다.
  • MultiThreaded 지정시 전역 공유 쓰레드풀에서 멀티 쓰레드로 처리가 됩니다.
  • UseExternalThreadPool 지정시 m_externalNetWorkerThreadPool 에 지정 된 사용자 정의 쓰레드 풀로 작동 됩니다. (전역 공유 쓰레드풀이란, NetClient 객체가 여러개가 되더라도 엔진 내부의 하나의 쓰레드풀에서 처리가 됩니다.)

기본 옵션은 MultiThreaded 입니다.

(주의! SingleThreaded 옵션 사용시 사용자는 NetClient.FrameMove 함수를 반드시 호출 해야 합니다.)

Guid Proud::CNetConnectionParam::m_protocolVersion

서버에 연결하기 전에, 서버와의 프로토콜 매칭을 위한 값입니다.

  • CNetServer.Start에서 입력했던 protocol version과 서버와의 연결이 성공합니다. 그렇지 않을 경우 ErrorType_ProtocolVersionMismatch가 서버 연결 후 응답으로 옵니다.
String Proud::CNetConnectionParam::m_publicDomainName1

IPv4 literal 문자열로 서버에 접속하더라도 IPv6 네트워크 클라이언트에서의 접속이 가능하게 해주는 변수입니다. 자세한 것은 Apple의 IPv6 정책 우회책 를 참고하십시오.

String Proud::CNetConnectionParam::m_publicDomainName2

IPv4 literal 문자열로 서버에 접속하더라도 IPv6 네트워크 클라이언트에서의 접속이 가능하게 해주는 변수입니다. 자세한 것은 Apple의 IPv6 정책 우회책 를 참고하십시오.

String Proud::CNetConnectionParam::m_serverIP

연결할 서버의 주소

  • 예: 111.222.111.222(IP 주소식) 혹은 game.mydomain.net(호스트 이름식)
  • 스트레스 테스트를 하는 경우에 한꺼번에 많은 클라이언트가 서버에 접속해야 합니다. 이러한 경우 서버 주소가 호스트 이름식인 경우 접속 속도가 매우 느릴 수 있습니다. 따라서 스트레스 테스트를 할 경우 서버 주소로 IP 주소식을 쓰는 것을 권장합니다.
uint16_t Proud::CNetConnectionParam::m_serverPort

연결할 서버의 TCP 포트입니다.

bool Proud::CNetConnectionParam::m_simplePacketMode

Simple network protocol mode.

기본값은 false 입니다. 패킷 캡쳐 및 복제 방식으로 더미 클라이언트 테스트를 가능하게 하기 위해서 이 값을 true로 설정하십시오. 단, 서비스가 해커의 공격에 취약해 지며 UDP networking과 direct P2P 통신을 사용할 수 없습니다. (대신 relay 로 전송합니다.) 라이브 서비스를 위해서는 false로 설정하십시오.

패킷 캡쳐와 리플레이 테스트관련 내용: 각각의 더미 클라이언트는 자신의 HostID를 확인할 수 없습니다. CreateP2PGroup() 과 같이 P2P 그룹 관련 함수를 호출할 경우 예상치 못한 상황이 발생할 수 있습니다.

bool Proud::CNetConnectionParam::m_slowReliableP2P

기본값은 false 입니다. true 로 설정할 경우 Reliable P2P 의 전송속도는 1MB/sec를 감당할 수 없습니다. 그러나 처리 성능이 가벼워집니다. 더미 클라이언트 테스트를 할 때에만 true 로 설정하십시오.

void* Proud::CNetConnectionParam::m_timerCallbackContext

서버에서 일정주기에 한번씩 콜백을 할시에 인자로 사용되는 유저 데이터입니다. Proud.INetServerEvent.OnTick 가 호출될시에 인자값으로 들어갑니다. 서버에서 타이머 루프 RMI 이벤트 처리하기 기능입니다.

  • 기본값은 NULL입니다.
uint32_t Proud::CNetConnectionParam::m_timerCallbackIntervalMs

Timer callback 주기 입니다. 서버에서 타이머 루프 RMI 이벤트 처리하기 기능입니다. 이것을 세팅하면 milisec단위로 한번씩 INetServerEvent.OnTick 가 호출됩니다.

  • 0이면 콜백하지 않습니다.
  • 기본값은 0입니다.
int32_t Proud::CNetConnectionParam::m_timerCallbackParallelMaxCount

Timer callback이 동시 몇 개의 user worker thread에서 호출될 수 있는지를 정합니다. 기본값은 1입니다. 모든 user worker thread를 사용하고 싶다면 INT_MAX를 입력해도 됩니다.

ByteArray Proud::CNetConnectionParam::m_userData

서버에 보내는 추가 연결 정보입니다. INetServerEvent.OnConnectionRequest()에서 이 데이터가 받아집니다.

ThreadModel Proud::CNetConnectionParam::m_userWorkerThreadModel

RMI, 이벤트 를 콜백 받을 쓰레드 모델을 지정합니다.

  • SingleThreaded 지정시 사용자는 NetClient.FrameMove 함수를 호출 할 때 RMI, 이벤트가 콜백 됩니다.
  • MultiThreaded 지정시 RMI, 이벤트 콜백이 멀티 쓰레드로 콜백 됩니다.
  • UseExternalThreadPool 지정시 m_externalUserWorkerThreadPool 에 지정 된 사용자 정의 쓰레드 풀로 작동 됩니다. 기본 옵션은 SingleThreaded 입니다.

(주의! SingleThreaded 옵션 사용시 사용자는 NetClient.FrameMove 함수를 반드시 호출 해야 합니다.)