Alvaro Herrera escribió:
Hector Salinas escribió:

#!/usr/bin/php -q
<?php
set_time_limit (0);
$address = '192.168.1.235';
$port = 5000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, SOL_TCP);
socket_bind($sock, $address, $port) or die('error bind en la ip');
socket_listen($sock);
while (true)
{
        $client = socket_accept($sock);
        socket_getpeername($client, $ip);
        $input = socket_read($client, 10);
        echo "\n*******************************";
        echo "\nNew client connected: {$ip}";
        echo "\nmemoria usada -->".memory_get_usage();
        socket_write($client, "A");
        unset($client);
        unset($input);
        $contador++;
}
socket_close($sock);
?>

Hmm, leyendo la pagina sobre variables en el manual de PHP te
recomendaria que pusieras las variables que son "locales" dentro de una
funcion.  No queda para nada claro que la memoria se libere al hacer un
"unset".  O sea, algo asi:

#!/usr/bin/php -q
<?php

function do_client_stuff( ... )
{
         $client = socket_accept($sock);
         socket_getpeername($client, $ip);
         $input = socket_read($client, 10);
         echo "\n*******************************";
         echo "\nNew client connected: {$ip}";
         socket_write($client, "A");
        socket_close($client);
}

 set_time_limit (0);
 $address = '192.168.1.235';
 $port = 5000;
 $sock = socket_create(AF_INET, SOCK_STREAM, 0);
 socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, SOL_TCP);
 socket_bind($sock, $address, $port) or die('error bind en la ip');
 socket_listen($sock);
 while (true)
 {
          do_client_stuff($sock);
         $contador++;
         echo "\nmemoria usada -->".memory_get_usage();
 }
 socket_close($sock);
?>


ok, estube testieando este script y sigo con el drama del
incremento de memory, creo debe ser al bug de las funciones socket*









Responder a