Raised This Month: $ Target: $400
 0% 

Modulo sockets con multiples hilos?


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Javivi
AlliedModders Donor
Join Date: Dec 2008
Old 05-04-2013 , 13:22   Re: Modulo sockets con multiples hilos?
#4

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_socketFloat:g_socketwait

public plugin_init( )
    
register_concmd"sockettest""testsocket" )
    
public 
testsocketid )
{
    new 
errortype]
    
    
read_argv1typecharsmaxtype ) )

    switch( 
str_to_numtype ) )
    {
        case 
0:
        {
            
log_to_file"sockettest.log""Trying to create a socket (non blocking)^n" )
    
            
g_socket socket_open_non_blockingWEBHOST80SOCKET_TCPerror )
        }
        case 
1:
        {
            
log_to_file"sockettest.log""Trying to create a socket (blocking)^n" )
    
            
g_socket socket_openWEBHOST80SOCKET_TCPerror )
        }
    }
    
    if( 
g_socket && !error )
    {
        
log_to_file"sockettest.log""Socket created %d^n"g_socket )
        
        
set_task1.0"check_socket"1456, .flags="b" )
    }
    else
        
log_to_file"sockettest.log""Failed to create a socket [error:%d]^n"error )
}

public 
check_sockettask )
{
    if( 
socket_is_writableg_socket ) )
    {
        
log_to_file"sockettest.log""Socket avaiable^n" )
        
        
remove_tasktask )
        
g_socketwait get_gametime( )
        
        new 
request200 ]
        
formatexrequestcharsmaxrequest ), "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_sendg_socketrequestcharsmaxrequest ) )

        
log_to_file"sockettest.log""Sent!^n" )

        
set_task0.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_closeg_socket )
            
remove_tasktask )
        }
    }
}

public 
recvdatatask )
{
    
log_to_file"sockettest.log""Waiting reponse...^n" )
    
    if ( 
socket_changeg_socket) )
    {
        static 
data3000 ], pos
    
        socket_recv
g_socketdatapos ] , charsmaxdata ) - pos )

        
pos strlendata )
        
        if( 
containidata "302 Found" ) > -|| containidata "200 OK" ) > -|| containidata"404 Not Found" ) )
        {    
            
log_to_file"sockettest.log""REPONSE: ( len: %d )^n%s^n"strlendata ), data )

            
socket_closeg_socket )
            
remove_tasktask )
        }
        
        
g_socketwait get_gametime( )
    }
    
    if( ( 
get_gametime( ) - g_socketwait ) >= 5.0 )
    {
        
log_to_file"sockettest.log""Socket timed out^n" )
        
        
socket_closeg_socket )
        
remove_tasktask )
    }

Attached Files
File Type: 7z sockets_hz.7z (34.5 KB, 40 views)
File Type: sma Get Plugin or Get Source (sockettest.sma - 540 views - 2.5 KB)
__________________

Last edited by Javivi; 05-04-2013 at 13:32.
Javivi is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 18:24.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode