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 |
CThreadPool* Proud::CStartServerParameterBase::m_externalNetWorkerThreadPool |
network I/O 관련 루틴을 사용자가 수동으로 생성한 thread pool에서 실행하게 합니다. 자세한 것은 서버에서 여러 호스트 모듈이 같은 Thread Pool를 공유하기 을 참고하십시오.
- 기본값은 null입니다.
- 이 값을 설정했을 경우 m_networkerThreadCount는 무시됩니다. m_externalNetWorkerThreadPool가 사용자가 수동으로 생성한 thread pool인
CThreadPool* Proud::CStartServerParameterBase::m_externalUserWorkerThreadPool |
FastEncryptLevel Proud::CStartServerParameterBase::m_fastEncryptedMessageKeyLength |
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 |
uint32_t Proud::CStartServerParameterBase::m_timerCallbackIntervalMs |
int32_t Proud::CStartServerParameterBase::m_timerCallbackParallelMaxCount |
Timer callback이 동시 몇 개의 user worker thread에서 호출될 수 있는지를 정합니다. 기본값은 1입니다. 모든 user worker thread를 사용하고 싶다면 INT_MAX를 입력해도 됩니다.