BTW {Alternativa correcta (socket daemon)}

Germán Póo-Caamaño gpoo en calcifer.org
Vie Ene 23 16:53:51 CLST 2009


On Fri, 2009-01-23 at 16:46 -0300, Hector Salinas wrote:
> Alvaro Herrera escribió:
> > Hector Salinas escribió:
> >> Alvaro Herrera escribió:
> >> ok, estube testieando este script y sigo con el drama del
> >> incremento de memory, creo debe ser al bug de las funciones socket*
> > 
> > Otra idea: declara las variables como "static" dentro de la funcion.
> > 
> >>> #!/usr/bin/php -q
> >>> <?php
> >>>
> >>> function do_client_stuff( ... )
> >>> {
> > 
> > 	static $client, $input, $ip;
> > 
> >>>          $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);
> >>> }
> > 
> > 
> > BTW a estas alturas, yo ya tengo más que claro que el problema es lo
> > penca que es PHP, y posiblemente tu programa funcionaría sin problemas
> > en un lenguaje bien implementado.
> > 
> lamentablemte sigue pasando y concuerdo con tigo Alvaro
> se me cayo del altar php :-(
> 
> ¿ la ca&%$··$% en hacerlo en php-cli ?
>   (me respondo a mi mismo cuando inicie esta discucion)

Otra alternativa es usar sonic o que le eches una mirada a como está
construido.  Aunque antes podrías probarle y descartar de plano si
adolece de los mismos problemas ;-)

Intuyo que PHP limpia todo cuando termina el script, y en este caso,
dado que el script nunca termina, nunca limpia la memoria.
> 
-- 
Germán Póo-Caamaño
http://www.calcifer.org/



Más información sobre la lista de distribución Linux