BTW {Alternativa correcta (socket daemon)}
Rodrigo Fuentealba
the.code.keeper en gmail.com
Vie Ene 23 21:58:31 CLST 2009
El día 23 de enero de 2009 20:46, Hector Salinas <hsalinas en bsf.cl> escribió:
> 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.
Bueno, hay mejores cosas para trabajar con sockets que PHP;
Concretamente, creo que ese programa sería mucho más fácil con Python
o Ruby. Y habría una solución más seria.
PHP es: "PHP: Hypertext Preprocessor"; a diferencia de Python, Ruby,
Java y otros lenguajes,
éste tiene una finalidad precisa: "preprocesar hipertexto". Las demás
"challas" que tiene funcionan bien para el dueño y están arriba por si
alguien las quiere usar... pero es mucho más serio dejarlas a un lado.
Acá estamos experimentando con pcntl() y es horrible.
Hacer un demonio en PHP es... sencillamente una horrible idea; te compadezco.
> solucion voy a tenerlo que hacerlo en otro lenguaje, me voy a inclinar por
> python (espero que no pase lo mismo con los objetos socket)
Un daemon en Python o Ruby se ve bastante bueno.
Para Ruby, mira en Ruby on Rails el código de /script/server.
> ps : solucion temporal (hasta termine el nuevo script testiado y terminado)
> botarlo con crond cada 2 hora el script. No puedo dejar sin que funciones el
> torniquete
Ouch.
--
Rodrigo Fuentealba
http://www.thecodekeeper.net/
Más información sobre la lista de distribución Linux