Usa esta version que modifico joaquim:
https://forums.alliedmods.net/showth...895#post987895
Bugsy tambien hizo
otra version del modulo sockets, pero a mi personalmente me daba error al intentar conectar usando linux... se supone que el bug ya
lo arreglo, pero no lo he probado ni nada, asi que usa la version de joaquim.
Codigo de testeo probug de hace unos 4 años, escribe en consola sockettest 0/1 y en los ficheros .log veras la info
PHP Code:
#include < amxmodx >
#include < sockets_hz >
#define WEBHOST "www.google.com"
new g_socket, Float:g_socketwait
public plugin_init( )
register_concmd( "sockettest", "testsocket" )
public testsocket( id )
{
new error, type[ 2 ]
read_argv( 1, type, charsmax( type ) )
switch( str_to_num( type ) )
{
case 0:
{
log_to_file( "sockettest.log", "Trying to create a socket (non blocking)^n" )
g_socket = socket_open_non_blocking( WEBHOST, 80, SOCKET_TCP, error )
}
case 1:
{
log_to_file( "sockettest.log", "Trying to create a socket (blocking)^n" )
g_socket = socket_open( WEBHOST, 80, SOCKET_TCP, error )
}
}
if( g_socket && !error )
{
log_to_file( "sockettest.log", "Socket created %d^n", g_socket )
set_task( 1.0, "check_socket", 1456, .flags="b" )
}
else
log_to_file( "sockettest.log", "Failed to create a socket [error:%d]^n", error )
}
public check_socket( task )
{
if( socket_is_writable( g_socket ) )
{
log_to_file( "sockettest.log", "Socket avaiable^n" )
remove_task( task )
g_socketwait = get_gametime( )
new request[ 200 ]
formatex( request, charsmax( request ), "GET /index.php HTTP/1.1^r^nHost: %s^r^nConnection: close^r^n^r^n", WEBHOST )
log_to_file( "sockettest.log", "Sending ^n%s^n", request )
socket_send( g_socket, request, charsmax( request ) )
log_to_file( "sockettest.log", "Sent!^n" )
set_task( 0.5 , "recvdata" , 1223, .flags = "b" )
}
else
{
log_to_file( "sockettest.log", "Socket not avaiable^n" )
if( ( get_gametime( ) - g_socketwait ) >= 5.0 )
{
log_to_file( "sockettest.log", "Socket timed out^n" )
socket_close( g_socket )
remove_task( task )
}
}
}
public recvdata( task )
{
log_to_file( "sockettest.log", "Waiting reponse...^n" )
if ( socket_change( g_socket, 1 ) )
{
static data[ 3000 ], pos
socket_recv( g_socket, data[ pos ] , charsmax( data ) - pos )
pos = strlen( data )
if( containi( data , "302 Found" ) > -1 || containi( data , "200 OK" ) > -1 || containi( data, "404 Not Found" ) )
{
log_to_file( "sockettest.log", "REPONSE: ( len: %d )^n%s^n", strlen( data ), data )
socket_close( g_socket )
remove_task( task )
}
g_socketwait = get_gametime( )
}
if( ( get_gametime( ) - g_socketwait ) >= 5.0 )
{
log_to_file( "sockettest.log", "Socket timed out^n" )
socket_close( g_socket )
remove_task( task )
}
}