Proud::CNetConfig 클래스 참조

정적 Public 멤버 함수

static PROUD_API int64_t GetP2PHolepunchEndTimeMs ()
 
static __forceinline int64_t GetFallbackServerUdpToTcpTimeoutMs ()
 
static __forceinline int64_t GetFallbackP2PUdpToTcpTimeoutMs ()
 
static PROUD_API Proud::String GetVersion ()
 
static PROUD_API CriticalSectionGetWriteCriticalSection ()
 
static PROUD_API void AssertTimeoutTimeAppropriate (int64_t ms)
 
static PROUD_API void ThrowExceptionIfMessageLengthOutOfRange (int length)
 

정적 Public 속성

static PROUD_API int UdpIssueRecvLength
 
static PROUD_API int UdpRecvBufferLength_Client
 
static PROUD_API int UdpRecvBufferLength_Server
 
static PROUD_API int UdpRecvBufferLength_ServerStaticAssigned
 
static PROUD_API int TcpIssueRecvLength
 
static PROUD_API int TcpRecvBufferLength
 
static PROUD_API int TcpSendBufferLength
 
static PROUD_API int UdpSendBufferLength_Client
 
static PROUD_API int UdpSendBufferLength_Server
 
static PROUD_API int UdpSendBufferLength_ServerStaticAssigned
 
static PROUD_API bool EnableSocketTcpKeepAliveOption
 
static PROUD_API int64_t ReliableUdpHeartbeatIntervalMs_Real
 
static PROUD_API int64_t ReliableUdpHeartbeatIntervalMs_ForDummyTest
 
static PROUD_API int64_t TcpSocketConnectTimeoutMs
 
static PROUD_API int64_t ClientConnectServerTimeoutTimeMs
 
static PROUD_API int64_t DefaultConnectionTimeoutMs
 
static PROUD_API int64_t MinConnectionTimeoutMs
 
static PROUD_API int64_t MaxConnectionTimeoutMs
 
static PROUD_API uint32_t WaitCompletionTimeoutMs
 
static PROUD_API uint32_t HeartbeatIntervalMs
 
static PROUD_API uint32_t GarbageCollectIntervalMs
 
static PROUD_API int64_t ServerHolepunchIntervalMs
 
static PROUD_API int64_t UdpHolepunchIntervalMs
 
static PROUD_API int64_t ServerUdpRepunchIntervalMs
 
static PROUD_API int ServerUdpRepunchMaxTrialCount
 
static PROUD_API int ServerUdpHolepunchMaxTrialCount
 
static PROUD_API int64_t P2PHolepunchIntervalMs
 
static PROUD_API int P2PShotgunStartTurn
 
static PROUD_API int P2PHolepunchMaxTurnCount
 
static PROUD_API int64_t PurgeTooOldUnmatureClientTimeoutMs
 
static PROUD_API int64_t PurgeTooOldAddMemberAckTimeoutMs
 
static PROUD_API int64_t DisposeGarbagedHostsTimeoutMs
 
static PROUD_API int64_t RemoveTooOldUdpSendPacketQueueTimeoutMs
 
static PROUD_API int64_t AssembleFraggedPacketTimeoutMs
 
static PROUD_API bool EnablePacketDefragWarning
 
static PROUD_API int ShotgunTrialCount
 
static PROUD_API int ShotgunRange
 
static PROUD_API int64_t UnreliablePingIntervalMs
 
static PROUD_API int64_t ReliablePingIntervalMs
 
static PROUD_API bool UseReportRealUdpCount
 
static PROUD_API int64_t ReportRealUdpCountIntervalMs
 
static PROUD_API uint32_t LanClientHeartbeatIntervalMs
 
static PROUD_API int64_t LanPeerConnectPeerTimeoutTimeMs
 
static PROUD_API int64_t PurgeTooOldJoiningTimeOutIntervalMs
 
static PROUD_API int64_t RemoveLookaheadMessageTimeoutIntervalMs
 
static PROUD_API int RecyclePairReuseTimeMs
 
static PROUD_API int64_t GarbageTooOldRecyclableUdpSocketsIntervalMs
 
static PROUD_API int ServerUdpSocketLatentCloseMs
 
static PROUD_API int64_t TcpInDangerThresholdMs
 
static PROUD_API int64_t TcpUnstableDetectionWaitTimeMs
 
static PROUD_API int64_t PauseUdpSendDurationOnTcpInDangerMs
 
static PROUD_API int64_t RecentAssemblyingPacketIDsClearIntervalMs
 
static PROUD_API int EveryRemoteIssueSendOnNeedIntervalMs
 
static int DefaultNoPingTimeoutTimeMs
 
static PROUD_API int LagLinearProgrammingFactorPercent
 
static PROUD_API int StreamGrowBy
 
static PROUD_API int InternalNetVersion
 
static PROUD_API int InternalLanVersion
 
static PROUD_API int MtuLength
 
static PROUD_API int64_t ElectSuperPeerIntervalMs
 
static const int MessageMaxLengthInOrdinaryCase = 64 * 1024
 
static const int MessageMaxLengthInServerLan = 1024 * 1024
 
static const int MessageMinLength = 128
 
static const int MessageMaxLength
 
static PROUD_API int64_t DefaultGracefulDisconnectTimeoutMs
 
static PROUD_API int MaxS2CMulticastRouteCount
 
static PROUD_API int UnreliableS2CRoutedMulticastMaxPingDefaultMs
 
static PROUD_API bool ForceCompressedRelayDestListOnly
 
static const int MaxConnectionCount = 60000
 
static const int OrdinaryHeavyS2CMulticastCount = 100
 
static PROUD_API const bool EnableTestSplitter
 
static const uint32_t ClientListHashTableValue = 101
 
static PROUD_API bool EnableSpeedHackDetectorByDefault
 
static PROUD_API bool EnableMessagePriority
 
static PROUD_API const int64_t SpeedHackDetectorPingIntervalMs
 
static PROUD_API int DefaultMaxDirectP2PMulticastCount
 
static PROUD_API bool UpnpDetectNatDeviceByDefault
 
static PROUD_API bool UpnpTcpAddPortMappingByDefault
 
static PROUD_API int64_t MeasureClientSendSpeedIntervalMs
 
static PROUD_API int64_t MeasureSendSpeedDurationMs
 
static PROUD_API
DirectP2PStartCondition 
DefaultDirectP2PStartCondition
 
static PROUD_API bool CatchUnhandledException
 
static PROUD_API ErrorReaction UserMisuseErrorReaction
 
static PROUD_API bool NetworkerThreadPriorityIsHigh
 
static PROUD_API int64_t ReportLanP2PPeerPingIntervalMs
 
static PROUD_API int64_t ReportP2PPeerPingTestIntervalMs
 
static PROUD_API int64_t ReportServerTimeAndPingIntervalMs
 
static PROUD_API int64_t LongIntervalMs
 
static PROUD_API int64_t MinSendSpeed
 
static PROUD_API int DefaultOverSendSuspectingThresholdInBytes
 
static PROUD_API bool ForceUnsafeHeapToSafeHeap
 
static PROUD_API bool EnableSendBrake
 
static PROUD_API int UdpCongestionControl_MinPacketLossPercent
 
static PROUD_API int64_t VizReconnectTryIntervalMs
 
static PROUD_API int64_t SuperPeerSelectionPremiumMs
 
static PROUD_API int64_t HostIDRecycleAllowTimeMs
 
static PROUD_API int SendQueueHeavyWarningCapacity
 
static PROUD_API int64_t SendQueueHeavyWarningTimeMs
 
static PROUD_API int64_t SendQueueHeavyWarningCheckCoolTimeMs
 
static PROUD_API int64_t UpdateNetClientStatCloneCoolTimeMs
 
static PROUD_API bool EnableErrorReportToNettention
 
static PROUD_API int64_t ManagerGarbageFreeTimeMs
 
static PROUD_API unsigned int ManagerAverageElapsedTimeCollectCount
 
static PROUD_API bool EnableStarvationWarning
 
static PROUD_API bool FraggingOnNeedByDefault
 
static PROUD_API bool CheckDeadLock
 
static PROUD_API bool UseIsSameLanToLocalForMaxDirectP2PMulticast
 
static PROUD_API const int TcpSendMaxAmount
 
static PROUD_API const bool AllowUseTls
 
static PROUD_API bool ConcealDeadlockOnDisconnect
 
static PROUD_API int MessageOverloadWarningLimit
 
static PROUD_API int MessageOverloadWarningLimitTimeMs
 
static PROUD_API int64_t MessageOverloadTimerIntervalMs
 
static PROUD_API int64_t LanRemotePeerHeartBeatTimerIntervalMs
 
static PROUD_API int P2PFallbackTcpRelayResendTimeIntervalMs
 
static PROUD_API int CleanUpOldPacketIntervalMs
 
static PROUD_API int NormalizePacketIntervalMs
 
static PROUD_API double MessageRecovery_MessageIDAckIntervalMs
 
static PROUD_API bool ListenSocket_RetryOnInvalidArgError
 
static PROUD_API bool AllowOutputDebugString
 
static PROUD_API bool DefensiveSendReadyListAdd
 
static PROUD_API bool DefensiveCustomValueEvent
 
static PROUD_API bool EnablePeriodicDetectingTransitionNetwork
 

상세한 설명

ProudNet 관련 여러가지 설정 값들이다.

  • 따로 문서화되어 있지 않은 값들은 함부로 변경하지 말 것.

멤버 함수 문서화

static PROUD_API Proud::String Proud::CNetConfig::GetVersion ( )
static

본 함수는 ProudNet Version 정보를 반환합니다.

멤버 데이타 문서화

PROUD_API const bool Proud::CNetConfig::AllowUseTls
static

Thread local storage (TLS) 함수를 사용할지 여부를 결정합니다. 기본값은 true입니다. TLS 함수를 사용할 수 없는 환경에 한해서, 이 값을 false로 설정하십시오. (예를 들어 몇 해킹 방지 3rd party 소프트웨어 혼용을 하는 경우)

PROUD_API bool Proud::CNetConfig::CatchUnhandledException
static

ProudNet 내부 또는 ProudNet에 의해 콜백되는 메서드(RMI 수신 루틴, 이벤트 핸들러 등)에서 unhandled exception(가령 메모리 긁기)이 발생했으며 그것을 사용자가 catch하지 않은 경우 roudNet이 대신 catch 처리한 후 OnUnhandledException으로 넘겨줄 것인지 아니면 그냥 unhandled exception을 냅둘 것인지를 결정하는 변수이다.

  • 기본값은 true이다.
  • 사용자는 언제든지 이 값을 바꿔도 된다.
PROUD_API bool Proud::CNetConfig::EnableMessagePriority
static

사용자는 이 값을 false로 바꾸어 메시지 우선순위 기능을 끌 수 있다. 테스트 목적으로만 쓰는 것을 권장한다.

PROUD_API const bool Proud::CNetConfig::EnableTestSplitter
static

test splitter를 켤 것인가 말 것인가?

  • 켤 경우 통신량은 약간 증가하나 splitter test를 통해 깨진 serialization을 찾는데 도움이 된다.
PROUD_API int Proud::CNetConfig::EveryRemoteIssueSendOnNeedIntervalMs
static

모든 상대 Remote 들의 IssueSend를 모아서 송신한다.

  • 기본값은 3ms 이다.
  • 이값을 길게 잡으면 송신렉이 생길수 있으니 주의요망! (3ms ~ 10ms)사이가 적당하다.
PROUD_API int64_t Proud::CNetConfig::HostIDRecycleAllowTimeMs
static

ProudNet 에서 HostID 재사용 발급시 몇초가 지나야 발급할지를 결정하는 값입니다.

PROUD_API int Proud::CNetConfig::LagLinearProgrammingFactorPercent
static

선형계획법(?)

  • 너무 작게 잡으면 값의 변화가 작아서 기존 값의 오류를 쉽게 극복 못하고 너무 크게 잡으면 값의 변화가 커서 대체적 값의 중간점을 유지하기 어렵다.
const int Proud::CNetConfig::MaxConnectionCount = 60000
static

서버당 최대 동접자수

PROUD_API int Proud::CNetConfig::MaxS2CMulticastRouteCount
static

서버에서 클라이언트로 P2P routed multicast를 할 때 최대 보낼 수 있는 갯수(router 역할을 하는 클라를 제외함)

const int Proud::CNetConfig::MessageMaxLengthInOrdinaryCase = 64 * 1024
static

한 개의 메시지가 가질 수 있는 최대 크기

  • 고정된 값이 아니다. 개발자는 이 값을 언제든지 변경해도 된다.
  • 이 값은 CNetServerCNetClient 객체를 생성하기 전에 미리 설정해야 한다.
  • 하지만 웬만해서는 변경하지 않는 것을 권장한다. 단, 서버간 통신에서 1개의 메시지가 1MB를 넘어가는 수준이라면 예외다.
  • 해킹된 클라이언트에서 잘못된 메시지 크기를 보내는 경우를 차단하려면 CNetServer.SetMessageMaxLength 를 쓰는 것을 권장한다.
PROUD_API bool Proud::CNetConfig::NetworkerThreadPriorityIsHigh
static

CNetClient 의 내부 처리용 worker thread 의 우선순위를 통상보다 높게 설정하는지 여부

  • 기본값: true이다.
  • 클라이언트 어플리케이션에서 CNetClient 인스턴스를 사용하는 경우 렌더링 프레임이 떨어지는 경우 이 값을 false로 세팅해서 문제 해결을 할 가능성이 있기도 하다. 하지만 드물다. 차라리 통신량을 줄이는 것이 낫다.
  • 최초의 CNetClient 인스턴스를 만들기 전에만 이 값을 설정할 수 있다.
const int Proud::CNetConfig::OrdinaryHeavyS2CMulticastCount = 100
static

서버에서 한번의 multicast를 할때 heap alloc이 불필요한 수준의 통상적인 최대 송신량

PROUD_API int Proud::CNetConfig::SendQueueHeavyWarningCapacity
static

Sendqueue의 용량이 얼마나 초과되면 warning를 나오게 할것인지에 대한 값입니다.

PROUD_API int64_t Proud::CNetConfig::UpdateNetClientStatCloneCoolTimeMs
static

emergency log를 위한 NetClientStats 의 사본을 갱신할 coolTime 값입니다.

PROUD_API ErrorReaction Proud::CNetConfig::UserMisuseErrorReaction
static

ProudNet 사용자가 실수를 한 경우 대화 상자로 보일 것인지 여타 방식으로 처리할 것인지를 결정하는 변수다.

  • 사용자는 언제든지 이 값을 바꿔도 된다.
  • 기본값은 ErrorReaction_MessageBox 이다.