Proud::CNetClientInfo 클래스 참조

Public 멤버 함수

String ToString (bool atServer)
 

Public 속성

AddrPort m_TcpAddrFromServer
 
AddrPort m_UdpAddrFromServer
 
AddrPort m_UdpAddrInternal
 
HostID m_HostID
 
bool m_RelayedP2P
 
HostIDSet m_joinedP2PGroups
 
bool m_isBehindNat
 
bool m_realUdpEnabled
 
String m_natDeviceName
 
int m_recentPingMs
 
int m_sendQueuedAmountInBytes
 
void * m_hostTag
 
double m_recentFrameRate
 
uint32_t m_toServerSendUdpMessageTrialCount
 
uint32_t m_toServerSendUdpMessageSuccessCount
 
uint32_t m_hostIDRecycleCount
 
int64_t m_unreliableMessageRecentReceiveSpeed
 

상세한 설명

상대 호스트의 정보 구조체

멤버 데이타 문서화

HostID Proud::CNetClientInfo::m_HostID

CNetServer 에서 할당해준 peer 의 int.

uint32_t Proud::CNetClientInfo::m_hostIDRecycleCount

클라이언트가 현재 사용하고 있는 HostID 의 재사용 횟수입니다.

  • StartParameter.m_HostIDGenerationPolicy 로 재사용을 할지를 결정할수 있습니다.
  • 재사용하지 않는 옵션이면 무조건 0이 나옵니다.
void* Proud::CNetClientInfo::m_hostTag

사용자가 지정한 tag의 포인터입니다.

bool Proud::CNetClientInfo::m_isBehindNat

true인 경우 이 클라이언트는 NAT 장치 뒤에 있음을 의미합니다.

HostIDSet Proud::CNetClientInfo::m_joinedP2PGroups

이 client가 참여하고 있는 P2P 그룹의 리스트

String Proud::CNetClientInfo::m_natDeviceName

이 클라이언트가 작동중인 NAT 장치의 이름

  • CNetServer 에서만 얻을 수 있습니다.
  • 실제로 NAT device 뒤에 있는 클라이언트라 하더라도, 이름을 얻는데는 어느 정도의 시간이 필요합니다. 따라서 바로 접속이 들어온 클라이언트의 정보를 얻을 경우 이 값이 아직 채워지지 않을 수 있습니다. 이러한 경우 잠시 뒤에 다시 클라이언트의 정보를 얻어오면 NAT 장치의 이름을 얻을 수 있습니다.
bool Proud::CNetClientInfo::m_realUdpEnabled

true인 경우 이 클라이언트는 서버와의 UDP 통신이 유지되고 있음을 의미합니다. false인 경우 UDP 통신이 불가능하기 때문에 TCP가 UDP 대신 사용되고 있음을 의미합니다.

double Proud::CNetClientInfo::m_recentFrameRate

클라이언트의 Frame Rate 입니다.

  • CNetClient.SetApplicationHint 에서 사용자가 입력한 값입니다.
  • 각 피어에는 전달되지 않으며, 서버에서 각 클라이언트의 Frame Rate 를 확인 하고자 할 때 사용합니다.
  • Frame rate는 통신량 절감을 위하여 전송시 float값으로 변환되어 송수신 됩니다.
int Proud::CNetClientInfo::m_recentPingMs

최근에 측정된 ping의 평균 시간 (초단위)

bool Proud::CNetClientInfo::m_RelayedP2P

true이면 이 클라이언트 peer로의 RMI는 서버를 경유하는 P2P relay를 함을 의미합니다.

int Proud::CNetClientInfo::m_sendQueuedAmountInBytes

이 peer로의 송신 대기중인 메시지의 총량(바이트 단위) 입니다.

  • 서버에서 peer에 대해 얻는 경우 서버=>클라이언트 송신에 대한 총량입니다.
  • 클라이언트에서 peer에 대해 얻는 경우 클라이언트=>클라이언트 송신에 대한 총량(단, relay되는 메시지에 대해서는 제외)
AddrPort Proud::CNetClientInfo::m_TcpAddrFromServer

서버에서 바라본 peer의 TCP socket의 주소. 즉 공인 인터넷 주소(external addr)입니다.

  • 서버와 연결됐지만 아직 홀펀칭이 성사되지 않은 클라이언트도 어쨌거나 주소는 얻을 수 있어야 하므로 이 필드가 존재합니다.
  • 보안을 위해, 클라이언트에서는 타 remote peer에 대한 이 값을 얻지 못합니다.
uint32_t Proud::CNetClientInfo::m_toServerSendUdpMessageSuccessCount

해당 클라이언트가 서버에게 Udp packet 전송을 성공한 총 횟수

uint32_t Proud::CNetClientInfo::m_toServerSendUdpMessageTrialCount

해당 클라이언트가 서버에게 Udp packet 전송을 시도한 총 횟수

AddrPort Proud::CNetClientInfo::m_UdpAddrFromServer

서버에서 바라본 클라이언트의 UDP socket의 주소. 즉, 클라이언트가 서버와의 홀펀칭이 완료된 후의 인식된 주소

AddrPort Proud::CNetClientInfo::m_UdpAddrInternal

peer 내부에서의 UDP socket의 주소

  • 서버와의 UDP 홀펀칭이 아직 안끝난 클라이언트, 즉 TCP로만 통신중인 클라이언트는 이 값이 Unassigned일 수 있습니다. 그러나 비정상 상황은 아닙니다.