您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BYTEARRAY函数代码示例

51自学网 2021-06-01 19:54:17
  C++
这篇教程C++ BYTEARRAY函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BYTEARRAY函数的典型用法代码示例。如果您正苦于以下问题:C++ BYTEARRAY函数的具体用法?C++ BYTEARRAY怎么用?C++ BYTEARRAY使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BYTEARRAY函数的21个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: RECEIVE_SID_AUTH_ACCOUNTLOGON

bool 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_INIT

CIncomingGarenaUser *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: ExtractPackets

void 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_INFO

bool 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_WARDEN

BYTEARRAY 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: Update

bool 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: ExtractPackets

void 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_WARDEN

BYTEARRAY 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_PING

BYTEARRAY 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_CHATEVENT

CIncomingChatEvent *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_REQJOIN

CIncomingJoinPlayer *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_ACTION

CIncomingAction *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_GETADVLISTEX

CIncomingGameHost *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_CLANINVITATIONRESPONSE

string 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: DoSend

void 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_LOGONRESPONSE

bool 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_ACCOUNTLOGONPROOF

bool 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_CHECK

bool 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_GETADVLISTEX

CIncomingGameHost *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_RUNMODULE

BYTEARRAY CBNLSProtocol :: SEND_BNLS_WARDEN_RUNMODULE( uint32_t cookie ){	return BYTEARRAY( );}
开发者ID:0x6d48,项目名称:ghostpp,代码行数:4,


示例21: RECEIVE_W3GS_CHAT_TO_HOST

CIncomingChatPlayer *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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。