Proud::CNetConfig Class Reference

Static Public Member Functions

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)
 

Static Public Attributes

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 AutoConnectionRecoveryTimeoutTimeMs
 
static PROUD_API int64_t AutoConnectionRecoveryTimeoutMinTimeMs
 
static PROUD_API int64_t AutoConnectionRecoveryRefreshServerAddrInfoTimeoutMs
 
static PROUD_API int EveryRemoteIssueSendOnNeedIntervalMs
 
static PROUD_API 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 PROUD_API const int MessageMaxLengthInOrdinaryCase = 64 * 1024
 
static PROUD_API const int MessageMaxLengthInServerLan = 1024 * 1024
 
static PROUD_API const int MessageMinLength = 128
 
static PROUD_API 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 const bool EnableTestSplitter = false
 
static const uint32_t ClientListHashTableValue = 101
 
static PROUD_API bool EnableSpeedHackDetectorByDefault
 
static PROUD_API bool EnableMessagePriority
 
static PROUD_API 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 bool EnableAbortiveSocketClose
 
static PROUD_API bool EnableObjectPooling
 
static PROUD_API bool EnableSocketReuseAddress
 
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 int TcpSendMaxAmount
 
static PROUD_API const bool AllowUseTls = true
 
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
 
static PROUD_API const int64_t WaitForSendingDummyPacketIntervalMs
 
static PROUD_API bool EnableAutoConnectionRecoveryOnServer
 
static const int RountTripLatencyTestMaxCount = 1000
 

Detailed Description

ProudNet related setting values

  • DO NOT change the values that are separately documented!

Member Function Documentation

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

This function returns ProudNet Version information.

Member Data Documentation

PROUD_API const bool Proud::CNetConfig::AllowUseTls = true
static

This is to determine whether to use the Thread local storage (TLS) function. The default value is true. For the environment where the TLS function cannot be used only, set this value as false. (for example, when an anti-hacking 3rd party software is used together)

PROUD_API bool Proud::CNetConfig::CatchUnhandledException
static

The variable that decides whether:

  1. to pass as OnUnhandledException after Proudnet processes it as catch when unhandled exception(such as scratching memory) occurs at the method(RMI reception routine, event handler) called back by either ProudNet internal or ProudNet while user did not catch,
  1. or to leave unhandled exception as it is.
  • Default is true.
  • User can change this value at any time.
PROUD_API bool Proud::CNetConfig::EnableAbortiveSocketClose
static

It is the variable which is setted when progressing shutdown of socket by aboritive or hard. We recommend to use it for testing

  • Default: false
PROUD_API bool Proud::CNetConfig::EnableMessagePriority
static

User can turn off message priority function by changing it to false. We recommend to use it for testing

PROUD_API bool Proud::CNetConfig::EnableObjectPooling
static

This variable can turn on or off Object Pooling function in ProudNet. We recommend not to change it.

  • Default: true
const bool Proud::CNetConfig::EnableTestSplitter = false
static
test splitter를 켤 것인가 말 것인가?

켤 경우 통신량은 약간 증가하나 splitter test를 통해 깨진 serialization을 찾는데 도움이 된다. 주의: true로 설정하지 말 것. RMI encryption이 정상 작동 안한다.

PROUD_API int Proud::CNetConfig::EveryRemoteIssueSendOnNeedIntervalMs
static

It sends IssueSend of all other Remotes

  • Defualt value is 3ms
  • It may occur lag of sending, if you set too longe. It will suitable between 3ms ~ 10ms.
PROUD_API int64_t Proud::CNetConfig::HostIDRecycleAllowTimeMs
static

It will decide issue timing for issuing HostID re-use at ProudNet.

PROUD_API int Proud::CNetConfig::LagLinearProgrammingFactorPercent
static

Linear planning(?)

  • If too small then hard to overcome error from exisiting value to its change being too small, If too big then hard to keep the mid-point value due to its change being too big.
const int Proud::CNetConfig::MaxConnectionCount = 60000
static

Maximum number of con-current user per server

PROUD_API int Proud::CNetConfig::MaxS2CMulticastRouteCount
static

The maximum number of P2P routed multicast from server to client (client that acts as router is excluded)

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

The maximum size of a message can have

  • Not a fixed value. Developer can change this at any time.
  • This value must be set previously before creating the CNetServer object or CNetClient object.
  • However, it is not recommended to change this. But, there can be an exception when a message has a size around 1 MB among server communications.
  • To stop a hacked client sending incorrect message size, it is recommended to use CNetServer.SetMessageMaxLength.
PROUD_API bool Proud::CNetConfig::NetworkerThreadPriorityIsHigh
static

To decide whether to set priority of internal worker thread of CNetClient to be higher than normal

  • Default: true
  • When using CNetClient instance at client application causes lowering renderinf frames, there is a possibility to solve that by setting this as false. But very rare. It is better to redice communication traffic.
  • This value can be set only, before creating the very first CNetClient.
const int Proud::CNetConfig::OrdinaryHeavyS2CMulticastCount = 100
static

Maximum amount of normal communication that does not require heap alloc when server performs 1 multicast

PROUD_API int Proud::CNetConfig::SendQueueHeavyWarningCapacity
static

It will decide warning message timing depends on amount of Sendqueue

PROUD_API int64_t Proud::CNetConfig::UpdateNetClientStatCloneCoolTimeMs
static

This is the coolTime value to renew the copy of NetClientStats for the emergency log.

PROUD_API ErrorReaction Proud::CNetConfig::UserMisuseErrorReaction
static

A variable to decide to display ProudNet user mistake as chat box or other way

  • User can change this value at any time.
  • Default is ErrorReaction_MessageBox.