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*

