Raised This Month: $ Target: $400
 0% 

[Socket Read]


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
ProIcons
Senior Member
Join Date: Jan 2009
Location: Greece - Salonica
Old 11-25-2010 , 05:41   [Socket Read]
Reply With Quote #1

PHP Code:
new bothost,botcmd[2049];
 public 
socket_init()
{
    new 
ip[64],port,erre,user[32],pass[100]
    new 
cmd[300];
    
get_cvar_string("cm_bot_host",ip,63)
    
port get_cvar_num("cm_bot_port")
    
get_cvar_string("cm_bot_user",user,31)
    
get_cvar_string("cm_vot_pass",pass,99)
    
bothost socket_open(ip,port,SOCKET_TCP,erre)
    if (
erre == 0) {
        
remove_taskRETRY );
    
server_print("Socket Reopened");
    }
    
format(cmd,299,"USER asd^r^nPASS asd^r^n")
    
socket_send(bothost,cmd,512)
    new 
params];
    
params] = bothost;
    
set_task0.5 "socket_read" TASK_RECV params sizeofparams ) , "b" );
}
 new 
socket_status[50]
 
   public 
socket_read(botcmd[])
{
   if ( 
socket_changebothost ) )
   {
   
socket_recv(bothost,botcmd,2048)

   if (
equal(botcmd,"")) {
       
server_print("[Network] Connection with Bot has been lost");
       new 
params[9];
       
params[1] = RETRY;
       
set_task0.25 "socket_init" RETRY params sizeofparams ) , "b" );
       
remove_taskTASK_RECV );
   }
 ... 
Post Changed
Well i am getting a live streaming connection between the server and my bot with this script... but when i am closing the Bot, and the pawn script is trying to reenstablish connection it freezes for a while.. why that? i am closing the "retry" task when the server is connecting
__________________
function rb return $regsubex($$1-,/(.)/g,$+($chr(2) $+ $chr(3),$r(2,15),$chr(2),\1))

Last edited by ProIcons; 11-25-2010 at 08:13.
ProIcons is offline
ProIcons
Senior Member
Join Date: Jan 2009
Location: Greece - Salonica
Old 11-25-2010 , 08:13   Re: [Socket Read]
Reply With Quote #2

Topic Changes - Please re Read
__________________
function rb return $regsubex($$1-,/(.)/g,$+($chr(2) $+ $chr(3),$r(2,15),$chr(2),\1))
ProIcons is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 11-25-2010 , 08:39   Re: [Socket Read]
Reply With Quote #3

Try this

You can use this thread for reference: http://forums.alliedmods.net/showpos...06&postcount=4
PHP Code:
//added to be able to compile
//const TASK_RECV = 1234;

new bothost,botcmd[2049];
new 
socket_status[50]
 
public 
socket_init()
{
    new 
ip[64],port,erre,user[32],pass[100]
    new 
cmd[300];
    
    
get_cvar_string("cm_bot_host",ip,charsmax(ip))
    
port get_cvar_num("cm_bot_port")
    
get_cvar_string("cm_bot_user",user,charsmax(user))
    
get_cvar_string("cm_vot_pass",pass,charsmax(pass))
    
    
bothost socket_open(ip,port,SOCKET_TCP,erre)
    
    if ( 
bothost && !erre 
    {
        
server_print("Socket Reopened");
    
        
formatexcmd charsmax(cmd) , "USER asd^r^nPASS asd^r^n" )
        
socket_sendbothost cmd sizeofcmd ) )
    
        
set_task0.5 "socket_read" TASK_RECV+bothost , .flags="b" );
    }
}


public 
socket_readiTaskInfo )
{
    static 
bothost iDataRecv;
    
bothost iTaskInfo TASK_RECV;
    
    if ( 
socket_changebothost ) )
    {
        
iDataRecv socket_recvbothost botcmd charsmaxbotcmd ) );

        
//Not a good way to check if a connection was lost. Better to check when
        //the last response was recvd and if the duration exceeds X seconds, consider
        //connection timed out.
        
if ( !iDataRecv /* equal( botcmd , "" ) */ 
        {
            
server_print("[Network] Connection with Bot has been lost");
            
socket_closebothost );
            
remove_taskiTaskInfo );
            
            
socket_init();
        }
    }

__________________

Last edited by Bugsy; 11-25-2010 at 08:47.
Bugsy is offline
ProIcons
Senior Member
Join Date: Jan 2009
Location: Greece - Salonica
Old 11-25-2010 , 08:57   Re: [Socket Read]
Reply With Quote #4

Well thank you for your help, i have done it like yours my self also i've changed the task time to 2.50 but every time that it connects to socket from 8 ping i have on localhost i am getting a 25 ping... i guess when a player connets from internet and have 45 Ping he will have 65... and it is ... to much..
__________________
function rb return $regsubex($$1-,/(.)/g,$+($chr(2) $+ $chr(3),$r(2,15),$chr(2),\1))
ProIcons is offline
Bugsy
AMX Mod X Moderator
Join Date: Feb 2005
Location: NJ, USA
Old 11-25-2010 , 09:02   Re: [Socket Read]
Reply With Quote #5

Better to use a thinking entity instead of set_task, this drastically improved file-transfer time in my FTP include (see code snippets\tuts section).
__________________
Bugsy is offline
Reply


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 11:25.


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