Proud::CNetConnectionParam Class Reference

Public Attributes

String m_serverIP
 
uint16_t m_serverPort
 
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_allowExceptionEvent
 
String m_clientAddrAtServer
 
bool m_enableAutoConnectionRecovery
 
bool m_closeNoPingPongTcpConnections
 
ThreadModel m_userWorkerThreadModel
 
ThreadModel m_netWorkerThreadModel
 
CThreadPoolm_externalUserWorkerThreadPool
 
CThreadPoolm_externalNetWorkerThreadPool
 
uint32_t m_timerCallbackIntervalMs
 
int32_t m_timerCallbackParallelMaxCount
 
void * m_timerCallbackContext
 

Detailed Description

Informtion structure of making server connection

Member Data Documentation

bool Proud::CNetConnectionParam::m_allowExceptionEvent
  • Decide whether it uses OnException callback function or not.
  • Default value is true.
  • If setting it as false, when exception occurs during user callback, crash will occur as OnException is not called.
String Proud::CNetConnectionParam::m_clientAddrAtServer

It is variable used when trying to set the clients' external address by force. It might be necesaary to make a P2P communication with other clients when a server and client is behind the NAT router. For example, if it should be the super peer that the client deal with game play and if it is the host that has a same server with the super peer, put the public address of the super peer here in the super peer.

bool Proud::CNetConnectionParam::m_closeNoPingPongTcpConnections
클라이언트-서버간에 TCP 핑퐁을 주고 받으며, 이 핑퐁이 너무 오랫동안 되지 못하면 연결을 끊어버리는 기능입니다.

기본값은 true입니다. 하위호환성을 위해 true일 뿐이며, 여러분은 가급적이면 이 값을 false로 바꾸는 것을 권장합니다.

일반적인 경우 이것을 켜지 않으셔도, NetClient와 NetServer는 TCP 연결 해제를 즉시 혹은 20초 정도 지나서 감지합니다.

이보다 더 빠른 시간 안에 TCP 연결 해제를 감지하고 싶다면 이 값을 true로 만들고 SetDefaultTimeoutTime이나 SetTimeoutTime을 추가적으로 사용하십시오.

그러나 주의가 필요합니다. 이것을 true로 설정하는 경우 평소 인터넷 품질이 나쁜 나라나 무선 신호가 약한 네트워킹에서 의도치 않은 연결해제가 일어날 수 있습니다. 인터넷 환경이 나쁘지만 그래도 조금이나마 통신이 되는 것을, 통신 불가능으로 오판하기 때문입니다.

이 값이 true이면, 모바일 기기에서 NetClient가 사용중일 때 주의사항이 있습니다. 프로그램이 오랫동안 백그라운드에 있을 때 즉 일시정지 상태에서 수십초 정도의 오랜 시간이 지나면, 서버에서는 연결해제 즉 OnClientLeave나 OnClientOffline이 발생할 수 있습니다.

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

It is the variable that enables connection from IPv6 network client even if connects to server by IPv4 literal string. For more details, please refer to tips for resolving Apple's IPv6 enforcement.

Numbers of UDP ports for newly created UDP sockets.

This host module uses an UDP port for each server or peer connection. Values in m_localUdpPortPool are used for binding local UDP port to every UDP socket created by this module. Arbitrary UDP port number will be taken if m_localUdpPortPool is empty or no available UDP port corresponding to m_localUdpPortPool exists.

In ordinary case, m_localUdpPortPool should be left unchanged. You should add values into m_localUdpPortPool if you want to bind some local UDP ports to UDP sockets created by this module.

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

This is the value to match the protocol with servers before connecting to the servers.

  • The connection to the server with the protocol version that was input at CNetServer.Start. If not, ErrorType_ProtocolVerionMismatch is to be returned after connected to the server.
String Proud::CNetConnectionParam::m_serverIP

Address of server to coneec to

  • ex: 111.222.111.222(IP address) or game.mydomain.net(host name)
  • During a stress test, lots of clients need to be connected to the server at the same time. If the server address is a type of a host name, it can be seriously laggy. It is strongly recommended to use IP address format for server address.
uint16_t Proud::CNetConnectionParam::m_serverPort

The TCP port of the server to be connected.

bool Proud::CNetConnectionParam::m_simplePacketMode

Simple network protocol mode.

Default is false. Setting this to true allows dummy client test via packet capture and replication method. However, it will make service vulnerable to hackers, and does not allow UDP networking and direct P2P communication (will be relayed instead.) You should set this to false for live service.

Notice for packet capture and replay test:

  • Each dummy client cannot identify self HostID. Unexpected behavior may occur if you call P2P group functions such as CreateP2PGroup().
bool Proud::CNetConnectionParam::m_slowReliableP2P

Default is false. If setting it as true, Reliable P2P transmission speed cannot support 1MB/sec. But performance will be improved, so set it as true only for dummy client test.

void* Proud::CNetConnectionParam::m_timerCallbackContext

This is a user data used as an index when the server calls back each time in every period. This value is to be input as an index when Proud.INetServerEvent.OnTimerCallback is called. A function described in Managing Timer loop RMI Event from server.

  • The default value is NULL.
uint32_t Proud::CNetConnectionParam::m_timerCallbackIntervalMs

This sets the period of timer callback. A function described in Managing Timer loop RMI Event from server. When this is activated, INetServerEvent.OnTimerCallback will be called at every period set by millisecond unit.

  • Ther is no callback when this is set as 0.
  • The default value is 0
int32_t Proud::CNetConnectionParam::m_timerCallbackParallelMaxCount

TODO:translate needed.

ByteArray Proud::CNetConnectionParam::m_userData

This is an additional connection info to be sent to the server. This data is received at INetServerEvent.OnConnectRequest().

ThreadModel Proud::CNetConnectionParam::m_userWorkerThreadModel

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

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

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