PHP Code:
#include < amxmodx >
#include < sockets >
#define PLUGIN "Socket Test#2"
#define VERSION "1.0"
enum _:iServerInfos
{
Server[ 64 ],
RemoteFile[ 64 ],
Socket,
Error,
PacketNum
}
new g_ServerData[ iServerInfos ];
new szRequest[ 128 ];
new g_DataBuffer[ 4096 ];
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Askhanar" );
FormatHostAndRequest( );
register_concmd( "test", "GetPlayerInfo" );
set_task( 5.0, "GetPlayerInfo", 112233 );
// Add your code here...
}
FormatHostAndRequest( )
{
g_ServerData[ Server ] = "www.gametracker.com";
g_ServerData[ RemoteFile ] = "player/lager/193.104.68.21:27050/";
formatex( szRequest, sizeof ( szRequest ) -1,"GET /As HTTP/1.1^r^nHost: %s^r^n^r^n", g_ServerData[ RemoteFile ], g_ServerData[ Server ] );
}
public GetPlayerInfo( )
{
if( g_ServerData[ Socket ] > 0 )
socket_close( g_ServerData[ Socket ] );
g_ServerData[ Socket ] = socket_open( g_ServerData[ Server ], 80, SOCKET_TCP, g_ServerData[ Error ] );
if( g_ServerData[ Error ] == 0 && g_ServerData[ Socket ] > 0 )
{
log_amx( "connected, sending: %s", szRequest );
socket_send( g_ServerData[ Socket ], szRequest, sizeof( szRequest ) );
g_ServerData[ PacketNum ] = 0;
set_task( 0.1, "task_ReciveData", 112233, _, _, "b", 0 );
set_task( 5.0, "task_close" );
}
else
{
switch( g_ServerData[ Error ] )
{
case 1: log_amx("[ERROR] Unable to create socket." );
case 2: log_amx("[ERROR] Unable to connect to hostname." );
case 3: log_amx("[ERROR] Unable to connect to the HTTP port." );
}
set_fail_state( "An error occured, read logs." );
}
}
public task_close( )
{
log_amx( "removed_task" );
socket_close( g_ServerData[ Socket ] );
g_ServerData[ Socket ] = 0;
g_ServerData[ PacketNum ] = 0;
remove_task( 112233 );
}
public task_ReciveData( )
{
log_amx( "task_rec" );
static iDataStart
new iLen;
if( socket_change( g_ServerData[ Socket ], 0 ) )
{
if( ( iLen = socket_recv( g_ServerData[ Socket ], g_DataBuffer, sizeof( g_DataBuffer ) ) ) )
{
if ( ( ++g_ServerData[ PacketNum ] == 1 ) && ( ( iDataStart = strfind( g_DataBuffer , "^r^n^r^n" ) ) > -1 ) )
{
iDataStart += 4;
}
else
{
iDataStart = 0;
}
log_amx( "[%i] [ %i ] RECEIVED: %s", g_ServerData[ PacketNum ], iLen, g_DataBuffer[ iDataStart ] );
}
/*else
{
log_amx( "removed_task" );
socket_close( g_ServerData[ Socket ] );
g_ServerData[ Socket ] = 0;
g_ServerData[ PacketNum ] = 0;
remove_task( 112233 );
}*/
}
}
How can you get the data in a hud message ?