이 모듈에 대한 설명은 ProudNet: 서버와 네트워크 를 참고하십시오. 더 자세히 ...
타입정의 | |
typedef uint16_t | Proud::RmiID |
typedef RefCount< ErrorInfo > | Proud::ErrorInfoPtr |
typedef RefCount< CP2PGroup > | Proud::CP2PGroupPtr |
함수 | |
void | Proud::AppendTextOut (String &a, AddrPort &b) |
void | Proud::AppendTextOut (String &a, NamedAddrPort &b) |
PROUD_API const PNTCHAR * | Proud::ToString (LogCategory logCategory) |
PROUD_API const PNTCHAR * | Proud::ToString (ConnectionState val) |
PROUD_API void | Proud::ThrowExceptionOnReadString (int length) |
PROUD_API void | Proud::ThrowExceptionOnReadArray (int64_t length) |
CMessage & | Proud::operator<< (CMessage &a, const StringA &str) |
CMessage & | Proud::operator>> (CMessage &a, StringA &str) |
CMessage & | Proud::operator<< (CMessage &a, const StringW &str) |
CMessage & | Proud::operator>> (CMessage &a, StringW &str) |
CMessage & | Proud::operator<< (CMessage &a, const std::string &str) |
CMessage & | Proud::operator>> (CMessage &a, std::string &str) |
CMessage & | Proud::operator<< (CMessage &a, const std::wstring &str) |
CMessage & | Proud::operator>> (CMessage &a, std::wstring &str) |
CMessage & | Proud::operator<< (CMessage &a, bool b) |
CMessage & | Proud::operator<< (CMessage &a, int8_t b) |
CMessage & | Proud::operator<< (CMessage &a, uint8_t b) |
CMessage & | Proud::operator<< (CMessage &a, int16_t b) |
CMessage & | Proud::operator<< (CMessage &a, uint16_t b) |
CMessage & | Proud::operator<< (CMessage &a, int32_t b) |
CMessage & | Proud::operator<< (CMessage &a, uint32_t b) |
CMessage & | Proud::operator<< (CMessage &a, uint64_t b) |
CMessage & | Proud::operator<< (CMessage &a, int64_t b) |
CMessage & | Proud::operator<< (CMessage &a, float b) |
CMessage & | Proud::operator<< (CMessage &a, double b) |
CMessage & | Proud::operator<< (CMessage &a, HostID b) |
CMessage & | Proud::operator>> (CMessage &a, bool &b) |
CMessage & | Proud::operator>> (CMessage &a, int8_t &b) |
CMessage & | Proud::operator>> (CMessage &a, uint8_t &b) |
CMessage & | Proud::operator>> (CMessage &a, int16_t &b) |
CMessage & | Proud::operator>> (CMessage &a, uint16_t &b) |
CMessage & | Proud::operator>> (CMessage &a, int32_t &b) |
CMessage & | Proud::operator>> (CMessage &a, uint32_t &b) |
CMessage & | Proud::operator>> (CMessage &a, uint64_t &b) |
CMessage & | Proud::operator>> (CMessage &a, int64_t &b) |
CMessage & | Proud::operator>> (CMessage &a, float &b) |
CMessage & | Proud::operator>> (CMessage &a, double &b) |
CMessage & | Proud::operator>> (CMessage &a, HostID &b) |
CMessage & | Proud::operator>> (CMessage &a, AddrPort &b) |
CMessage & | Proud::operator<< (CMessage &a, AddrPort b) |
CMessage & | Proud::operator>> (CMessage &a, ByteArray &b) |
CMessage & | Proud::operator<< (CMessage &a, const ByteArray &b) |
CMessage & | Proud::operator>> (CMessage &a,::timespec &tc) |
CMessage & | Proud::operator<< (CMessage &a, const ::timespec &tc) |
template<typename elem , bool elem_in_ref, bool RAWTYPE, typename INDEXTYPE > | |
CMessage & | Proud::operator>> (CMessage &a, CFastArray< elem, elem_in_ref, RAWTYPE, INDEXTYPE > &b) |
template<typename elem , bool elem_in_ref, bool RAWTYPE, typename INDEXTYPE > | |
CMessage & | Proud::operator<< (CMessage &a, const CFastArray< elem, elem_in_ref, RAWTYPE, INDEXTYPE > &b) |
CMessage & | Proud::operator<< (CMessage &a, const NamedAddrPort &b) |
CMessage & | Proud::operator>> (CMessage &a, NamedAddrPort &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const bool &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const int8_t &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const uint8_t &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const int16_t &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const uint16_t &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const int32_t &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const uint32_t &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const int64_t &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const uint64_t &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const float &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const double &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const char *&b) |
PROUD_API void | Proud::AppendTextOut (String &a, const wchar_t *&b) |
PROUD_API void | Proud::AppendTextOut (String &a, const StringA &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const StringW &b) |
void | Proud::AppendTextOut (String &a, const std::string &b) |
void | Proud::AppendTextOut (String &a, const std::wstring &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const POINT &b) |
template<typename elem > | |
void | Proud::AppendTextOut (String &a, CFastArray< elem > &b) |
PROUD_API void | Proud::AppendTextOut (String &a, ByteArray &b) |
PROUD_API void | Proud::AppendTextOut (String &a, const ::timespec &b) |
template<typename FloatType > | |
CMessage & | Proud::operator>> (CMessage &a, Vector3T< FloatType > &b) |
template<typename FloatType > | |
CMessage & | Proud::operator<< (CMessage &a, const Vector3T< FloatType > &b) |
void | Proud::AppendTextOut (String &a, const FloatVector3 &b) |
void | Proud::AppendTextOut (String &a, const Vector3 &b) |
template<typename K , typename V > | |
__forceinline CMessage & | Proud::operator>> (CMessage &a, CFastMap< K, V > &b) |
template<typename K , typename V > | |
__forceinline CMessage & | Proud::operator<< (CMessage &a, const CFastMap< K, V > &b) |
template<typename K , typename V > | |
__forceinline void | Proud::AppendTextOut (String &a, const CFastMap< K, V > &b) |
template<typename elem > | |
__forceinline CMessage & | Proud::operator>> (CMessage &a, CFastList< elem > &b) |
template<typename elem > | |
__forceinline CMessage & | Proud::operator<< (CMessage &a, const CFastList< elem > &b) |
template<typename elem > | |
__forceinline void | Proud::AppendTextOut (String &a, const CFastList< elem > &b) |
template<typename elem > | |
String | Proud::TestMarshaler (const elem &testee) |
변수 | |
const int | Proud::InvalidSocket = 0 |
StringA | Proud::policyFileText |
const PNTCHAR * | Proud::ProxyBadSignatureErrorText |
const PNTCHAR * | Proud::DecryptFailedError |
이 모듈에 대한 설명은 ProudNet: 서버와 네트워크 를 참고하십시오.
typedef RefCount<ErrorInfo> Proud::ErrorInfoPtr |
에러 정보를 담는 객체의 스마트 포인터
enum Proud::CompressMode |
클라이언트간 직접 P2P 통신을 위한 홀펀칭을 시작하는 조건
열거형 멤버 | |
---|---|
DirectP2PStartCondition_Jit |
꼭 필요한 상황이 아닌 이상 홀펀칭을 하지 않는다. 웬만하면 이것을 쓰는 것이 좋다. |
DirectP2PStartCondition_Always |
CNetServer.CreateP2PGroup 이나 CNetServer.JoinP2PGroup 등에 의해 클라이언트간 P2P 통신이 허용되는 순간에 무조건 홀펀칭 과정을 시작한다. 예를 들어 Super Peer(수퍼피어 혹은 호스트) 중심의 P2P 네트워킹 에서 수퍼 피어를 게임 플레이 도중 종종 바꿔야 한다면 이것이 필요할 수도 있을 것이다. |
enum Proud::EncryptMode |
enum Proud::ErrorType |
에러 타입 코드
열거형 멤버 | |
---|---|
ErrorType_Ok |
성공. 문제 없음. |
ErrorType_Unexpected |
예외 상황 발생 |
ErrorType_AlreadyConnected |
이미 연결되어 있음 |
ErrorType_TCPConnectFailure |
TCP 연결 실패 |
ErrorType_InvalidSessionKey |
잘못된 대칭키 |
ErrorType_EncryptFail |
암호화가 실패했음 |
ErrorType_DecryptFail |
해커가 깨진 데이터를 전송했거나 복호화가 실패했음 |
ErrorType_ConnectServerTimeout |
서버 연결 과정이 너무 오래 걸려서 실패 처리됨 |
ErrorType_ProtocolVersionMismatch |
서버 연결을 위한 프로토콜 버전이 다름 |
ErrorType_InvalidLicense |
서버 쪽 인증에 문제가 있음. |
ErrorType_NotifyServerDeniedConnection |
서버가 연결을 의도적으로 거부했음 |
ErrorType_Reserved01 |
서버 연결 성공! |
ErrorType_DisconnectFromRemote |
상대측 호스트에서 연결을 해제했음 |
ErrorType_DisconnectFromLocal |
이쪽 호스트에서 연결을 해제했음 |
ErrorType_Reserved02 |
위험한 상황을 불러올 수 있는 인자가 있음 |
ErrorType_UnknownAddrPort |
알 수 없는 인터넷 주소 |
ErrorType_Reserved03 |
서버 준비 부족 |
ErrorType_ServerPortListenFailure |
서버 소켓의 listen을 시작할 수 없습니다. TCP 또는 UDP 소켓이 이미 사용중인 포트인지 확인하십시오. |
ErrorType_AlreadyExists |
이미 개체가 존재합니다. |
ErrorType_PermissionDenied |
접근이 거부되었습니다.
|
ErrorType_BadSessionGuid |
잘못된 session Guid입니다. |
ErrorType_InvalidCredential |
잘못된 credential입니다. |
ErrorType_InvalidHeroName |
잘못된 hero name입니다. |
ErrorType_Reserved06 |
로딩 과정이 unlock 후 lock 한 후 꼬임이 발생했다 |
ErrorType_Reserved07 |
출력 파라메터 AdjustedGamerIDNotFilled가 채워지지 않았습니다. |
ErrorType_Reserved08 |
플레이어 캐릭터가 존재하지 않습니다. |
ErrorType_UnitTestFailed |
유닛 테스트 실패 |
ErrorType_P2PUdpFailed |
peer-to-peer UDP 통신이 막혔습니다. |
ErrorType_ReliableUdpFailed |
P2P reliable UDP가 실패했습니다. |
ErrorType_ServerUdpFailed |
클라이언트-서버 UDP 통신이 막혔습니다. |
ErrorType_NoP2PGroupRelation |
더 이상 같이 소속된 P2P 그룹이 없습니다. |
ErrorType_ExceptionFromUserFunction |
사용자 정의 함수(RMI 수신 루틴 혹은 이벤트 핸들러)에서 exception이 throw되었습니다. |
ErrorType_UserRequested |
사용자의 요청에 의한 실패입니다. |
ErrorType_InvalidPacketFormat |
잘못된 패킷 형식입니다. 상대측 호스트가 해킹되었거나 버그일 수 있습니다. |
ErrorType_TooLargeMessageDetected |
너무 큰 크기의 메시징이 시도되었습니다. 기술지원부에 문의하십시오. 필요시 통신 메시지의 크기 제한 를 참고하십시오. |
ErrorType_Reserved09 |
Unreliable 메세지는 encrypt 할수 없습니다. |
ErrorType_ValueNotExist |
존재하지 않는 값입니다. |
ErrorType_TimeOut |
타임아웃 입니다. |
ErrorType_LoadedDataNotFound |
로드된 데이터를 찾을수 없습니다. |
ErrorType_SendQueueIsHeavy |
송신량 과다시 경고 발생 기능. 송신 queue가 지나치게 커졌습니다. |
ErrorType_TooSlowHeartbeatWarning |
Heartbeat가 평균적으로 너무 느림 |
ErrorType_CompressFail |
메시지 압축이 실패 하였습니다. |
ErrorType_LocalSocketCreationFailed |
클라이언트 소켓의 listen 혹은 UDP 준비를 할 수 없습니다. TCP 또는 UDP 소켓이 이미 사용중인 포트인지, 프로세스당 소켓 갯수 제한이 있는지 확인하십시오. |
Error_NoneAvailableInPortPool |
Socket을 생성할 때 Port Pool 내 port number로의 bind가 실패했습니다. 대신 임의의 port number가 사용되었습니다. Port Pool의 갯수가 충분한지 확인하십시요. |
ErrorType_InvalidPortPool |
Port pool 내 값들 중 하나 이상이 잘못되었습니다. 포트를 0(임의 포트 바인딩)으로 하거나 중복되지 않았는지 확인하십시요. |
ErrorType_InvalidHostID |
유효하지 않은 HostID 값입니다. |
ErrorType_MessageOverload |
사용자가 소화하는 메시지 처리 속도보다 내부적으로 쌓이는 메시지의 속도가 더 높습니다. 지나치게 너무 많은 메시지를 송신하려고 했는지, 혹은 사용자의 메시지 수신 함수가 지나치게 느리게 작동하고 있는지 확인하십시오. |
ErrorType_DatabaseAccessFailed |
Accessing database failed. For example, query statement execution failed. You may see the details from comment variable. |
ErrorType_OutOfMemory |
메모리가 부족합니다. |
ErrorType_AutoConnectionRecoveryFailed |
서버와의 연결이 끊어져서 연결 복구 기능이 가동되었지만, 이것 마저도 실패했습니다. |
ErrorType_NotImplementedRmi |
RMI 함수를 호출 했지만, 함수 구현부가 없습니다. |
TCP fallback을 의도적으로 시행할 때의 방법
열거형 멤버 | |
---|---|
FallbackMethod_None |
Fallback을 안함. 즉 서버 및 peer와의 UDP 통신을 모두 사용함. |
FallbackMethod_PeersUdpToTcp |
서버와의 UDP 통신은 유지하되 타 Peer들과의 UDP 통신만이 차단된 것으로 처리한다. 일시적 포트매핑 실패와 유사한 상황을 재현한다. 가장 강도가 낮다. |
FallbackMethod_ServerUdpToTcp |
서버와의 UDP 통신을 차단된 것으로 처리한다. 일시적 포트매핑 실패와 유사한 상황을 재현한다. 아울러 Peer들과의 UDP 통신도 차단된다. 중간 강도다. |
FallbackMethod_CloseUdpSocket |
클라이언트의 UDP 소켓을 아예 닫아버린다. 영구적인 UDP 복구를 못하게 한다. 가장 강도가 높다.
|
enum Proud::HackType |
enum Proud::HostID |
enum Proud::LogCategory |
메시지 송신 우선순위
열거형 멤버 | |
---|---|
MessagePriority_High |
높은 우선순위 |
MessagePriority_Medium |
보통 우선순위. 가장 많이 사용됨. |
MessagePriority_Low |
낮은 우선순위 |
서버가, 서버에 접속하는 클라이언트와 통신할 때 사용할 UDP 소켓을 배정하는 정책입니다. 자세한 사항은 서버의 UDP 포트 사용 방식 를 참고하십시오.
열거형 멤버 | |
---|---|
ServerUdpAssignMode_None |
지정안됨. 사용자는 이 값을 쓰지 마십시오. |
ServerUdpAssignMode_PerClient |
접속이 들어오는 각 클라이언트에 대해서 서로 다른 UDP 포트를 사용합니다.
|
ServerUdpAssignMode_Static |
접속이 들어오는 모든 클라이언트는 미리 준비되어 있는 고정된 갯수의 UDP 포트를 재사용합니다. 이 설정을 사용할 경우 UDP의 특성상 서버와 통신을 하기 어려운 클라이언트들이 생길 수 있습니다.
|
소켓 에러 코드
String Proud::TestMarshaler | ( | const elem & | testee | ) |
사용자가 만든 marshaler 메서드가 정상적으로 작동하는지 테스트합니다. 디버깅 용도로 사용하세요.
testee | 사용자가 만든 변수 타입의 객체입니다. 최대한 복잡하게 값을 넣어서 테스트하는 것을 권합니다. 이 객체 타입은 Equals() 메서드를 멤버로 갖고 있어야 합니다. Equals()메서드는 두 값을 비교해서 같으면 true를 리턴해야 합니다. |
사용 예