这篇教程C++ BYTEARRAY函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中BYTEARRAY函数的典型用法代码示例。如果您正苦于以下问题:C++ BYTEARRAY函数的具体用法?C++ BYTEARRAY怎么用?C++ BYTEARRAY使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了BYTEARRAY函数的21个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: RECEIVE_SID_AUTH_ACCOUNTLOGONbool CBNETProtocol :: RECEIVE_SID_AUTH_ACCOUNTLOGON( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_AUTH_ACCOUNTLOGON" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> Status // if( Status == 0 ) // 32 bytes -> Salt // 32 bytes -> ServerPublicKey if( ValidateLength( data ) && data.size( ) >= 8 ) { BYTEARRAY status = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); if( UTIL_ByteArrayToUInt32( status, false ) == 0 && data.size( ) >= 72 ) { m_Salt = BYTEARRAY( data.begin( ) + 8, data.begin( ) + 40 ); m_ServerPublicKey = BYTEARRAY( data.begin( ) + 40, data.begin( ) + 72 ); return true; } } return false;}
开发者ID:RiseCakoPlusplus,项目名称:brtGHost,代码行数:26,
示例2: RECEIVE_GCBI_INITCIncomingGarenaUser *CGCBIProtocol :: RECEIVE_GCBI_INIT( BYTEARRAY data ){ // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> actual IP address (big endian) // 4 bytes -> Garena user ID (big endian) // 4 bytes -> Garena room ID (big endian) // 4 bytes -> Garena user experience (big endian) // 2 bytes -> country string from Garena if( ValidateLength( data ) && data.size( ) == 22 ) { BYTEARRAY IP = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); BYTEARRAY UserID = BYTEARRAY( data.begin( ) + 8, data.begin( ) + 12 ); BYTEARRAY RoomID = BYTEARRAY( data.begin( ) + 12, data.begin( ) + 16 ); BYTEARRAY UserExp = BYTEARRAY( data.begin( ) + 16, data.begin( ) + 20 ); BYTEARRAY Country = BYTEARRAY( data.begin( ) + 20, data.begin( ) + 22 ); return new CIncomingGarenaUser(UTIL_ByteArrayToUInt32( IP, true ), UTIL_ByteArrayToUInt32( UserID, true ), UTIL_ByteArrayToUInt32( RoomID, true ), UTIL_ByteArrayToUInt32( UserExp, true ), string( Country.begin( ), Country.end( ) ) ); } return NULL;}
开发者ID:DJexpert,项目名称:ohsystem,代码行数:27,
示例3: ExtractPacketsvoid CBNLSClient :: ExtractPackets( ){ string *RecvBuffer = m_Socket->GetBytes( ); BYTEARRAY Bytes = UTIL_CreateByteArray( (unsigned char *)RecvBuffer->c_str( ), RecvBuffer->size( ) ); while( Bytes.size( ) >= 3 ) { uint16_t Length = UTIL_ByteArrayToUInt16( Bytes, false ); if( Length >= 3 ) { if( Bytes.size( ) >= Length ) { m_Packets.push( new CCommandPacket( 0, Bytes[2], BYTEARRAY( Bytes.begin( ), Bytes.begin( ) + Length ) ) ); *RecvBuffer = RecvBuffer->substr( Length ); Bytes = BYTEARRAY( Bytes.begin( ) + Length, Bytes.end( ) ); } else return; } else { CONSOLE_Print( "[BNLSC: " + m_Server + ":" + UTIL_ToString( m_Port ) + ":C" + UTIL_ToString( m_WardenCookie ) + "] error - received invalid packet from BNLS server (bad length), disconnecting" ); m_Socket->Disconnect( ); return; } }}
开发者ID:NetCreator,项目名称:GHostPP,代码行数:28,
示例4: RECEIVE_SID_AUTH_INFObool CBNETProtocol :: RECEIVE_SID_AUTH_INFO( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_AUTH_INFO" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> LogonType // 4 bytes -> ServerToken // 4 bytes -> ??? // 8 bytes -> MPQFileTime // null terminated string -> IX86VerFileName // null terminated string -> ValueStringFormula if( ValidateLength( data ) && data.size( ) >= 25 ) { m_LogonType = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); m_ServerToken = BYTEARRAY( data.begin( ) + 8, data.begin( ) + 12 ); m_MPQFileTime = BYTEARRAY( data.begin( ) + 16, data.begin( ) + 24 ); m_IX86VerFileName = UTIL_ExtractCString( data, 24 ); m_ValueStringFormula = UTIL_ExtractCString( data, m_IX86VerFileName.size( ) + 25 ); return true; } return false;}
开发者ID:RiseCakoPlusplus,项目名称:brtGHost,代码行数:26,
示例5: RECEIVE_BNLS_WARDENBYTEARRAY CBNLSProtocol :: RECEIVE_BNLS_WARDEN( BYTEARRAY data ){ // 2 bytes -> Length // 1 byte -> ID // (BYTE) -> Usage // (DWORD) -> Cookie // (BYTE) -> Result // (WORD) -> Length of data // (VOID) -> Data if( ValidateLength( data ) && data.size( ) >= 11 ) { unsigned char Usage = data[3]; uint32_t Cookie = UTIL_ByteArrayToUInt32( data, false, 4 ); unsigned char Result = data[8]; uint16_t Length = UTIL_ByteArrayToUInt16( data, false, 10 ); if( Result == 0x00 ) return BYTEARRAY( data.begin( ) + 11, data.end( ) ); else CONSOLE_Print( "[BNLSPROTO] received error code " + UTIL_ToString( data[8] ) ); } return BYTEARRAY( );}
开发者ID:0x6d48,项目名称:ghostpp,代码行数:25,
示例6: Updatebool CPotentialPlayer :: Update( void *fd ){ if( m_DeleteMe ) return true; if( !m_Socket ) return false; m_Socket->DoRecv( (fd_set *)fd ); // extract as many packets as possible from the socket's receive buffer and process them string *RecvBuffer = m_Socket->GetBytes( ); BYTEARRAY Bytes = UTIL_CreateByteArray( (unsigned char *)RecvBuffer->c_str( ), RecvBuffer->size( ) ); // a packet is at least 4 bytes so loop as long as the buffer contains 4 bytes while( Bytes.size( ) >= 4 ) { if( Bytes[0] == W3GS_HEADER_CONSTANT || Bytes[0] == GPS_HEADER_CONSTANT ) { // bytes 2 and 3 contain the length of the packet uint16_t Length = UTIL_ByteArrayToUInt16( Bytes, false, 2 ); if( Length >= 4 ) { if( Bytes.size( ) >= Length ) { if( Bytes[0] == W3GS_HEADER_CONSTANT && Bytes[1] == CGameProtocol :: W3GS_REQJOIN ) { delete m_IncomingJoinPlayer; m_IncomingJoinPlayer = m_Protocol->RECEIVE_W3GS_REQJOIN( BYTEARRAY( Bytes.begin( ), Bytes.begin( ) + Length ) ); if( m_IncomingJoinPlayer ) m_Game->EventPlayerJoined( this, m_IncomingJoinPlayer ); // this is the packet which interests us for now, the remaining is left for CGamePlayer *RecvBuffer = RecvBuffer->substr( Length ); Bytes = BYTEARRAY( Bytes.begin( ) + Length, Bytes.end( ) ); break; } *RecvBuffer = RecvBuffer->substr( Length ); Bytes = BYTEARRAY( Bytes.begin( ) + Length, Bytes.end( ) ); } else break; } } } // don't call DoSend here because some other players may not have updated yet and may generate a packet for this player // also m_Socket may have been set to NULL during ProcessPackets but we're banking on the fact that m_DeleteMe has been set to true as well so it'll short circuit before dereferencing return m_DeleteMe || !m_Socket->GetConnected( ) || m_Socket->HasError( );}
开发者ID:NoodleBoy,项目名称:aura-bot,代码行数:58,
示例7: ExtractPacketsvoid CGamePlayer :: ExtractPackets( ){ if( !m_Socket ) return; // extract as many packets as possible from the socket's receive buffer and put them in the m_Packets queue string *RecvBuffer = m_Socket->GetBytes( ); BYTEARRAY Bytes = UTIL_CreateByteArray( (unsigned char *)RecvBuffer->c_str( ), RecvBuffer->size( ) ); // a packet is at least 4 bytes so loop as long as the buffer contains 4 bytes while( Bytes.size( ) >= 4 ) { if( Bytes[0] == W3GS_HEADER_CONSTANT || Bytes[0] == GPS_HEADER_CONSTANT || Bytes[0] == GCBI_HEADER_CONSTANT ) { // bytes 2 and 3 contain the length of the packet uint16_t Length = UTIL_ByteArrayToUInt16( Bytes, false, 2 ); if( Length >= 4 ) { if( Bytes.size( ) >= Length ) { m_Packets.push( new CCommandPacket( Bytes[0], Bytes[1], BYTEARRAY( Bytes.begin( ), Bytes.begin( ) + Length ) ) ); if( Bytes[0] == W3GS_HEADER_CONSTANT ) ++m_TotalPacketsReceived; *RecvBuffer = RecvBuffer->substr( Length ); Bytes = BYTEARRAY( Bytes.begin( ) + Length, Bytes.end( ) ); } else return; } else { m_Error = true; m_ErrorString = "received invalid packet from player (bad length)"; return; } } else { m_Error = true; m_ErrorString = "received invalid packet from player (bad header constant)"; return; } }}
开发者ID:m-unkel,项目名称:OHSystem,代码行数:50,
示例8: RECEIVE_SID_WARDENBYTEARRAY CBNETProtocol :: RECEIVE_SID_WARDEN( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_WARDEN" ); // DEBUG_PRINT( data ); // 2 bytes -> Header // 2 bytes -> Length // n bytes -> Data if( ValidateLength( data ) && data.size( ) >= 4 ) return BYTEARRAY( data.begin( ) + 4, data.end( ) ); return BYTEARRAY( );}
开发者ID:RiseCakoPlusplus,项目名称:brtGHost,代码行数:14,
示例9: RECEIVE_SID_PINGBYTEARRAY CBNETProtocol :: RECEIVE_SID_PING( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_PING" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> Ping if( ValidateLength( data ) && data.size( ) >= 8 ) return BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); return BYTEARRAY( );}
开发者ID:RiseCakoPlusplus,项目名称:brtGHost,代码行数:14,
示例10: RECEIVE_SID_CHATEVENTCIncomingChatEvent *CBNETProtocol :: RECEIVE_SID_CHATEVENT( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_CHATEVENT" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> EventID // 4 bytes -> UserFlags // 4 bytes -> Ping // 12 bytes -> ??? // null terminated string -> User // null terminated string -> Message if( ValidateLength( data ) && data.size( ) >= 29 ) { BYTEARRAY EventID = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); BYTEARRAY UserFlags = BYTEARRAY( data.begin( ) + 8, data.begin( ) + 12 ); BYTEARRAY Ping = BYTEARRAY( data.begin( ) + 12, data.begin( ) + 16 ); BYTEARRAY User = UTIL_ExtractCString( data, 28 ); BYTEARRAY Message = UTIL_ExtractCString( data, User.size( ) + 29 ); switch( UTIL_ByteArrayToUInt32( EventID, false ) ) { case CBNETProtocol :: EID_SHOWUSER: case CBNETProtocol :: EID_JOIN: case CBNETProtocol :: EID_LEAVE: case CBNETProtocol :: EID_WHISPER: case CBNETProtocol :: EID_TALK: case CBNETProtocol :: EID_BROADCAST: case CBNETProtocol :: EID_CHANNEL: case CBNETProtocol :: EID_USERFLAGS: case CBNETProtocol :: EID_WHISPERSENT: case CBNETProtocol :: EID_CHANNELFULL: case CBNETProtocol :: EID_CHANNELDOESNOTEXIST: case CBNETProtocol :: EID_CHANNELRESTRICTED: case CBNETProtocol :: EID_INFO: case CBNETProtocol :: EID_ERROR: case CBNETProtocol :: EID_EMOTE: return new CIncomingChatEvent( (CBNETProtocol :: IncomingChatEvent)UTIL_ByteArrayToUInt32( EventID, false ), UTIL_ByteArrayToUInt32( UserFlags, false ), UTIL_ByteArrayToUInt32( Ping, false ), string( User.begin( ), User.end( ) ), string( Message.begin( ), Message.end( ) ) ); } } return NULL;}
开发者ID:svn2github,项目名称:ghostplusplus,代码行数:50,
示例11: RECEIVE_W3GS_REQJOINCIncomingJoinPlayer *CGameProtocol :: RECEIVE_W3GS_REQJOIN( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED W3GS_REQJOIN" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> Host Counter (Game ID) // 4 bytes -> Entry Key (used in LAN) // 1 byte -> ??? // 2 bytes -> Listen Port // 4 bytes -> Peer Key // null terminated string -> Name // 4 bytes -> ??? // 2 bytes -> InternalPort (???) // 4 bytes -> InternalIP if( ValidateLength( data ) && data.size( ) >= 20 ) { uint32_t HostCounter = UTIL_ByteArrayToUInt32( data, false, 4 ); BYTEARRAY Name = UTIL_ExtractCString( data, 19 ); if( !Name.empty( ) && data.size( ) >= Name.size( ) + 30 ) { BYTEARRAY InternalIP = BYTEARRAY( data.begin( ) + Name.size( ) + 26, data.begin( ) + Name.size( ) + 30 ); return new CIncomingJoinPlayer( HostCounter, string( Name.begin( ), Name.end( ) ), InternalIP ); } } return NULL;}
开发者ID:brunobnb,项目名称:ghostcb,代码行数:31,
示例12: RECEIVE_W3GS_OUTGOING_ACTIONCIncomingAction *CGameProtocol :: RECEIVE_W3GS_OUTGOING_ACTION( BYTEARRAY data, unsigned char PID ){ // DEBUG_Print( "RECEIVED W3GS_OUTGOING_ACTION" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> CRC // remainder of packet -> Action if( PID != 255 && ValidateLength( data ) && data.size( ) >= 8 ) { BYTEARRAY CRC = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); BYTEARRAY Action = BYTEARRAY( data.begin( ) + 8, data.end( ) ); return new CIncomingAction( PID, CRC, Action ); } return NULL;}
开发者ID:brunobnb,项目名称:ghostcb,代码行数:19,
示例13: RECEIVE_SID_GETADVLISTEXCIncomingGameHost *CBNETProtocol :: RECEIVE_SID_GETADVLISTEX( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_GETADVLISTEX" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> GamesFound // if( GamesFound > 0 ) // 10 bytes -> ??? // 2 bytes -> Port // 4 bytes -> IP // null term string -> GameName // 2 bytes -> ??? // 8 bytes -> HostCounter if( ValidateLength( data ) && data.size( ) >= 8 ) { BYTEARRAY GamesFound = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); if( UTIL_ByteArrayToUInt32( GamesFound, false ) > 0 && data.size( ) >= 25 ) { BYTEARRAY Port = BYTEARRAY( data.begin( ) + 18, data.begin( ) + 20 ); BYTEARRAY IP = BYTEARRAY( data.begin( ) + 20, data.begin( ) + 24 ); BYTEARRAY GameName = UTIL_ExtractCString( data, 24 ); if( data.size( ) >= GameName.size( ) + 35 ) { BYTEARRAY HostCounter; HostCounter.push_back( UTIL_ExtractHex( data, GameName.size( ) + 27, true ) ); HostCounter.push_back( UTIL_ExtractHex( data, GameName.size( ) + 29, true ) ); HostCounter.push_back( UTIL_ExtractHex( data, GameName.size( ) + 31, true ) ); HostCounter.push_back( UTIL_ExtractHex( data, GameName.size( ) + 33, true ) ); return new CIncomingGameHost( IP, UTIL_ByteArrayToUInt16( Port, false ), string( GameName.begin( ), GameName.end( ) ), HostCounter ); } } } return NULL;}
开发者ID:svn2github,项目名称:ghostplusplus,代码行数:43,
示例14: RECEIVE_SID_CLANINVITATIONRESPONSEstring CBNETProtocol :: RECEIVE_SID_CLANINVITATIONRESPONSE( BYTEARRAY data ){ if( ValidateLength( data ) && data.size( ) >= 12 ) { //skip four bytes cookie m_ClanLastInviteTag = BYTEARRAY( data.begin( ) + 8, data.begin( ) + 12 ); BYTEARRAY ClanName = UTIL_ExtractCString( data, 12 ); m_ClanLastInviteName = UTIL_ExtractCString( data, 12 + ClanName.size( ) ); return string( m_ClanLastInviteName.begin( ), m_ClanLastInviteName.end( ) ); } return NULL;}
开发者ID:4RtY,项目名称:ghostpp,代码行数:14,
示例15: DoSendvoid CTCPSocket :: DoSend( fd_set *send_fd ){ if( m_Socket == INVALID_SOCKET || m_HasError || !m_Connected || m_SendBuffer.empty( ) ) return; if( FD_ISSET( m_Socket, send_fd ) ) { // socket is ready, send it int s = send( m_Socket, m_SendBuffer.c_str( ), (int)m_SendBuffer.size( ), MSG_NOSIGNAL ); if( s == SOCKET_ERROR && GetLastError( ) != EWOULDBLOCK ) { // send error m_HasError = true; m_Error = GetLastError( ); if (m_isConsolePrint) CONSOLE_Print( "[TCPSOCKET] error (send) - " + GetErrorString( ) ); return; } else if( s > 0 ) { // success! only some of the data may have been sent, remove it from the buffer if( !m_LogFile.empty( ) ) { ofstream Log; Log.open( m_LogFile.c_str( ), ios :: app ); if( !Log.fail( ) ) { Log << "SEND >>> " << UTIL_ByteArrayToHexString( BYTEARRAY( m_SendBuffer.begin( ), m_SendBuffer.begin( ) + s ) ) << endl; Log.close( ); } } m_SendBuffer = m_SendBuffer.substr( s ); m_LastSend = GetTime( ); } }}
开发者ID:brunobnb,项目名称:brtGHost,代码行数:44,
示例16: RECEIVE_SID_LOGONRESPONSEbool CBNETProtocol :: RECEIVE_SID_LOGONRESPONSE( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_LOGONRESPONSE" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> Status if( ValidateLength( data ) && data.size( ) >= 8 ) { BYTEARRAY Status = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); if( UTIL_ByteArrayToUInt32( Status, false ) == 1 ) return true; } return false;}
开发者ID:RiseCakoPlusplus,项目名称:brtGHost,代码行数:19,
示例17: RECEIVE_SID_AUTH_ACCOUNTLOGONPROOFbool CBNETProtocol :: RECEIVE_SID_AUTH_ACCOUNTLOGONPROOF( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_AUTH_ACCOUNTLOGONPROOF" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> Status if( ValidateLength( data ) && data.size( ) >= 8 ) { uint32_t Status = UTIL_ByteArrayToUInt32( BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ), false ); if( Status == 0 || Status == 0xE ) return true; } return false;}
开发者ID:RiseCakoPlusplus,项目名称:brtGHost,代码行数:19,
示例18: RECEIVE_SID_AUTH_CHECKbool CBNETProtocol :: RECEIVE_SID_AUTH_CHECK( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_AUTH_CHECK" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> KeyState // null terminated string -> KeyStateDescription if( ValidateLength( data ) && data.size( ) >= 9 ) { m_KeyState = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 ); m_KeyStateDescription = UTIL_ExtractCString( data, 8 ); if( UTIL_ByteArrayToUInt32( m_KeyState, false ) == KR_GOOD ) return true; } return false;}
开发者ID:RiseCakoPlusplus,项目名称:brtGHost,代码行数:21,
示例19: RECEIVE_SID_GETADVLISTEXCIncomingGameHost *CBNETProtocol :: RECEIVE_SID_GETADVLISTEX( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED SID_GETADVLISTEX" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 4 bytes -> GamesFound // if( GamesFound > 0 ) // 10 bytes -> ??? // 2 bytes -> Port // 4 bytes -> IP // null term string -> GameName // 2 bytes -> ??? // 8 bytes -> HostCounter if( ValidateLength( data ) && data.size( ) >= 8 ) { BYTEARRAY GamesFound = BYTEARRAY( data.begin( ) + 4, data.begin( ) + 8 );/* if (UTIL_ByteArrayToUInt32( GamesFound, false )>1) { string sIP =""; string GN =""; uint32_t PR; uint32_t GF = UTIL_ByteArrayToUInt32( GamesFound, false ); uint32_t Idx = 18; uint32_t Idx2 = 0; for (uint32_t i=0;i<GF;i++) { BYTEARRAY Port = BYTEARRAY( data.begin( ) + Idx, data.begin( ) + 2+Idx ); BYTEARRAY IP = BYTEARRAY( data.begin( ) + 2+Idx, data.begin( ) + 6+Idx ); BYTEARRAY GameName = UTIL_ExtractCString( data, 6+Idx ); Idx2 = GameName.size( ); Idx = Idx + Idx2+ 11; GN = string( GameName.begin( ), GameName.end( ) ); PR = UTIL_ByteArrayToUInt16( Port, false ); CONSOLE_Print("[GHOST] Game "+UTIL_ToString(i)+ " "+ GN + " "+sIP+" "+UTIL_ToString(PR)); } } else*/ if( UTIL_ByteArrayToUInt32( GamesFound, false ) > 0 && data.size( ) >= 25 ) { BYTEARRAY Port = BYTEARRAY( data.begin( ) + 18, data.begin( ) + 20 ); BYTEARRAY IP = BYTEARRAY( data.begin( ) + 20, data.begin( ) + 24 ); BYTEARRAY GameName = UTIL_ExtractCString( data, 24 ); if( data.size( ) >= GameName.size( ) + 35 ) { BYTEARRAY HostCounter; HostCounter.push_back( UTIL_ExtractHex( data, GameName.size( ) + 27, true ) ); HostCounter.push_back( UTIL_ExtractHex( data, GameName.size( ) + 29, true ) ); HostCounter.push_back( UTIL_ExtractHex( data, GameName.size( ) + 31, true ) ); HostCounter.push_back( UTIL_ExtractHex( data, GameName.size( ) + 33, true ) ); return new CIncomingGameHost( IP, UTIL_ByteArrayToUInt16( Port, false ), string( GameName.begin( ), GameName.end( ) ), HostCounter ); } } } return NULL;}
开发者ID:RiseCakoPlusplus,项目名称:brtGHost,代码行数:66,
示例20: SEND_BNLS_WARDEN_RUNMODULEBYTEARRAY CBNLSProtocol :: SEND_BNLS_WARDEN_RUNMODULE( uint32_t cookie ){ return BYTEARRAY( );}
开发者ID:0x6d48,项目名称:ghostpp,代码行数:4,
示例21: RECEIVE_W3GS_CHAT_TO_HOSTCIncomingChatPlayer *CGameProtocol :: RECEIVE_W3GS_CHAT_TO_HOST( BYTEARRAY data ){ // DEBUG_Print( "RECEIVED W3GS_CHAT_TO_HOST" ); // DEBUG_Print( data ); // 2 bytes -> Header // 2 bytes -> Length // 1 byte -> Total // for( 1 .. Total ) // 1 byte -> ToPID // 1 byte -> FromPID // 1 byte -> Flag // if( Flag == 16 ) // null term string -> Message // elseif( Flag == 17 ) // 1 byte -> Team // elseif( Flag == 18 ) // 1 byte -> Colour // elseif( Flag == 19 ) // 1 byte -> Race // elseif( Flag == 20 ) // 1 byte -> Handicap // elseif( Flag == 32 ) // 4 bytes -> ExtraFlags // null term string -> Message if( ValidateLength( data ) ) { unsigned int i = 5; unsigned char Total = data[4]; if( Total > 0 && data.size( ) >= i + Total ) { BYTEARRAY ToPIDs = BYTEARRAY( data.begin( ) + i, data.begin( ) + i + Total ); i += Total; unsigned char FromPID = data[i]; unsigned char Flag = data[i + 1]; i += 2; if( Flag == 16 && data.size( ) >= i + 1 ) { // chat message BYTEARRAY Message = UTIL_ExtractCString( data, i ); return new CIncomingChatPlayer( FromPID, ToPIDs, Flag, string( Message.begin( ), Message.end( ) ) ); } else if( ( Flag >= 17 && Flag <= 20 ) && data.size( ) >= i + 1 ) { // team/colour/race/handicap change request unsigned char Byte = data[i]; return new CIncomingChatPlayer( FromPID, ToPIDs, Flag, Byte ); } else if( Flag == 32 && data.size( ) >= i + 5 ) { // chat message with extra flags BYTEARRAY ExtraFlags = BYTEARRAY( data.begin( ) + i, data.begin( ) + i + 4 ); BYTEARRAY Message = UTIL_ExtractCString( data, i + 4 ); return new CIncomingChatPlayer( FromPID, ToPIDs, Flag, string( Message.begin( ), Message.end( ) ), ExtraFlags ); } } } return NULL;}
开发者ID:brunobnb,项目名称:ghostcb,代码行数:66,
注:本文中的BYTEARRAY函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ BYTES函数代码示例 C++ BYTE1函数代码示例 |