Proud::CStartServerParameterBase 클래스 참조
Proud::CStartServerParameterBase에 대한 상속 다이어그램 :

Public 속성

String m_serverAddrAtClient
 
String m_localNicAddr
 
Guid m_protocolVersion
 
int m_threadCount
 
int m_netWorkerThreadCount
 
EncryptLevel m_encryptedMessageKeyLength
 
FastEncryptLevel m_fastEncryptedMessageKeyLength
 
bool m_enableP2PEncryptedMessaging
 
bool m_allowServerAsP2PGroupMember
 
uint32_t m_timerCallbackIntervalMs
 
int32_t m_timerCallbackParallelMaxCount
 
void * m_timerCallbackContext
 
bool m_enableNagleAlgorithm
 
HostID m_reservedHostIDFirstValue
 
int m_reservedHostIDCount
 
CThreadPoolm_externalUserWorkerThreadPool
 
CThreadPoolm_externalNetWorkerThreadPool
 
bool m_allowOnExceptionCallback
 
bool m_enableEncryptedMessaging
 

상세한 설명

CNetServer.Start 에 의해 서버가 시작할 때 서버의 초기 설정값입니다. 서버 초기 설정값은 서버 성능에 영향을 줍니다. 자세한 것은 ProudNet 성능을 위한 팁 를 참고하십시오.

멤버 데이타 문서화

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

서버를 P2P 그룹 의 멤버로 포함시킬 수 있는지를 결정하는 설정값입니다.

bool Proud::CStartServerParameterBase::m_enableEncryptedMessaging
  • 암호화 기능을 켜거나 끕니다.
  • 일반적으로는 암호화 기능을 켜는 것이 좋습니다. 하지만 클라이언트가 서버에 접속할 때 보안 key 교환을 위해 서버의 연산 시간을 더 많이 소요하게 됩니다.
  • 암호화 기능이 전혀 필요 없는 게임 서버라면 본 기능을 끄시는 것이 좋습니다.
  • 기본값은 true입니다.
bool Proud::CStartServerParameterBase::m_enableNagleAlgorithm

TCP 지연 송신 기능과 Nagle 알고리즘 기능을 켜거나 끕니다. TCP를 주로 사용하면서 레이턴시에 민감하며, 통신량이 적은 앱은 이 값을 false로 지정하기도 합니다.

  • 기본값은 true입니다.
  • true인 경우 TCP Nagle 알고리즘이 켜지며 ProudNet 자체의 지연 송신 기능을 끕니다.
  • false인 경우 TCP Nagle 알고리즘이 꺼지며 ProudNet 자체의 지연 송신 기능을 켭니다.
  • TCP Nagle 알고리즘은 운영체제에 따라 다릅니다. Windows간 호스트에서 WAN에서는 최장 0.7초가 보고되었습니다.
  • ProudNet 자체의 지연 송신 기능은 최장 0.01초입니다.
bool Proud::CStartServerParameterBase::m_enableP2PEncryptedMessaging

P2P RMI 메세지의 encrypt 를 켜거나 끄는기능입니다. 기본값은 false입니다.

  • 만약, 사용자가 false로 설정하면 P2P 암호화된 RMI는 불가능합니다. 대신에 서버성능은 향상됩니다.
  • 사용자가 false인 상태에서 encrypt 메세징을 할경우에는 OnError가 콜백되고, P2P 메세지는 비암호화 RMI로 전송됩니다.
EncryptLevel Proud::CStartServerParameterBase::m_encryptedMessageKeyLength

ProudNet에서 암호화된 메시징을 주고 받을 때의 암호키의 길이입니다. (참고: 암호화 키 길이: 암호화 수준과 성능 사이에서 조율하기)

  • AES기반의 프라우드넷의 자체 암호화된 키를 생성합니다.
  • Proud::EncryptLevel 값을 참조하여 세팅하여야 하며 초기값은 EncryptLevel_Low 입니다.
CThreadPool* Proud::CStartServerParameterBase::m_externalNetWorkerThreadPool

network I/O 관련 루틴을 사용자가 수동으로 생성한 thread pool에서 실행하게 합니다. 자세한 것은 서버에서 여러 호스트 모듈이 같은 Thread Pool를 공유하기 을 참고하십시오.

  • 기본값은 null입니다.
  • 이 값을 설정했을 경우 m_networkerThreadCount는 무시됩니다. m_externalNetWorkerThreadPool가 사용자가 수동으로 생성한 thread pool인
CThreadPool* Proud::CStartServerParameterBase::m_externalUserWorkerThreadPool

사용자 정의 메서드를 사용자가 수동으로 생성한 thread pool에서 실행하게 합니다. 자세한 것은 서버에서 여러 호스트 모듈이 같은 Thread Pool를 공유하기 을 참고하십시오.

  • 기본값은 null입니다.
  • 이 값을 설정했을 경우 m_threadCount는 무시됩니다.
FastEncryptLevel Proud::CStartServerParameterBase::m_fastEncryptedMessageKeyLength

ProudNet에서 암호화된 메시징을 주고 받을 때의 암호키의 길이입니다. (참고: 암호화 키 길이: 암호화 수준과 성능 사이에서 조율하기)

  • Fast기반의 프라우드넷의 자체 암호화된 키를 생성합니다.
  • 스트리밍 암호화 방식이기 때문에 키값이 길어도 암복호화의 속도에는 영향을 주지 않습니다.
  • Proud::FastEncryptLevel 값을 참조하여 세팅하여야 하며 초기값은 FastEncryptLevel_Low 입니다.
String Proud::CStartServerParameterBase::m_localNicAddr

서버의 리스닝 소켓이 바인딩될 주소입니다.

  • 초기값은 빈 문자열입니다.
  • 통상적으로 빈 문자열을 지정하지만 서버가 네트워크 인터페이스(NIC)를 2개 이상 가지는 경우, 그리고 그것들 중 하나만이 CNetClient 에서 오는 접속 요청을 받을 수 있는 경우 여기에 해당됩니다. NIC에 지정된 IP 또는 호스트 이름을 지정해야 합니다. 호스트에 있는 NIC 주소 리스트를 얻으려면 Proud.GetLocalIPAddresses 를 쓸 수 있습니다.
  • 호스트 이름을 지정할 경우 클라이언트는 서버로 접속하기 위한 주소로 localhost를 입력할 경우 연결 실패를 할 수 있습니다. 이러한 경우 클라이언트는 서버로 접속하기 위해 서버 호스트의 주소를 명시적으로 입력해야 합니다.
  • 서버가 여러개의 LAN카드(NIC)를 장착한 경우의 설정
int Proud::CStartServerParameterBase::m_netWorkerThreadCount

ProudNet은 내부적으로 I/O 처리를 담당하는 스레드가 있습니다. 이것의 갯수를 지정합니다.

  • 기본값은 0입니다. 0을 지정하면 CPU 갯수로 지정됩니다.
  • 만약 ProudNet이 작동할 서버가 1개의 머신에서 CPU 코어 갯수만큼 작동하는 경우 사실상 서버는 단일 스레드 기반이나 다름없습니다. 이러한 경우에는 이 값을 1로 설정해서 1개의 CPU 만 사용하도록 설정해주면 ProudNet의 처리 성능이 향상됩니다. 그 외에는 본 값은 그냥 두는 것이 좋습니다.
  • m_externalNetWorkerThreadPool이 설정 되었을 경우 이 값은 무시됩니다.
Guid Proud::CStartServerParameterBase::m_protocolVersion

서버와 클라이언트간 맞추는 프로토콜 버전입니다.

  • 만약 프로토콜 버전이 서로 다르게 지정된 클라이언트가 서버에 연결(CNetClient.Connect)하려고 시도하면 클라이언트에서 ErrorType_ProtocolVersionMismatch 가 트리거됩니다.
int Proud::CStartServerParameterBase::m_reservedHostIDCount

P2P Group 생성에 사용할 예약된 범위의 HostID의 갯수입니다. 시작값은 m_reservedHostIDFirstValue로 설정하십시오.

HostID Proud::CStartServerParameterBase::m_reservedHostIDFirstValue

P2P Group 생성에 사용할 예약된 범위의 HostID의 시작값입니다. 범위의 크기는 m_reservedHostIDCount로 설정하십시오.

  • 클라이언트들의 HostID는 이 예약 범위를 피해서 생성됩니다.
  • CreateP2PGroup()에 이 예약 범위에 있는 값을 넣어서 사용자가 원하는 HostID값을 가진 P2P group을 생성할 수 있습니다.
String Proud::CStartServerParameterBase::m_serverAddrAtClient

서버의 주소입니다.

  • 초기값은 빈 문자열입니다.
  • 통상적으로 빈 문자열을 지정하지만, L4 스위치나 인터넷 공유기(NAT) 뒤에서 서버가 작동할 경우 클라이언트가 인식할 서버의 호스트 이름이나 IP address을 넣어줘야 합니다.
  • IP 주소(111.111.111.111 등) 혹은 인식 가능한 이름(aaa.mydomain.com)을 넣을 수 있습니다. 하지만 포트 번호는 넣지 못합니다.
int Proud::CStartServerParameterBase::m_threadCount

사용자 정의 루틴이 실행되는 스레드가 이 모듈의 내장 스레드 풀에서 실행될 경우, 그 스레드 풀의 스레드 갯수입니다.

  • 기본값은 0입니다. 0을 지정하면 CPU 갯수로 지정됩니다.
  • m_externalUserWorkerThreadPool이 설정 되었을 경우 이 값은 무시됩니다.
void* Proud::CStartServerParameterBase::m_timerCallbackContext

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

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

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

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

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