Alternativa correcta (socket daemon)
Eduardo Silva
edsiper en gmail.com
Dom Ene 25 10:38:09 CLST 2009
creo haber publicado el codigo que funciona sin problemas:
<?
function test() {
set_time_limit (0);
$address = '127.0.0.1';
$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(1){
$client = socket_accept($sock);
socket_getpeername($client, $ip);
$input = socket_read($client, 10);
echo "\n*******************************";
echo "\nNew client connected: {$ip}";
echo "\n|-> memory usage: ".memory_get_usage();
unset($input);
socket_close($client);
}
socket_close($sock);
}
test();
?>
mantiene siempre su mismo consumo de memoria una vez que el cliente deja de
ser atendido.
salu2.-
2009/1/25 Rodrigo Fuentealba <the.code.keeper en gmail.com>
> 2009/1/25 Hector Salinas <hsalinas en bsf.cl>:
> >
> > Horst H. von Brand escribió:
> >>El programa ya fue publicado aquí ... ¿ves tú el error?
> >
> > No veo el bendito error
> >
> >>Personalmente no tengo ningún problema en creer que hay un bug en PHP :-)
> >
> > Por que tanta mala a PHP
>
> PHP lamentablemente como implementacion es mala. No hablamos de que la
> sintáxis del lenguaje es mala (lo es, aunque desde hace un tiempo se
> ha tratado de corregir las inconsistencias que ha tenido), sino de que
> tiene un manejo de memoria malo y de que tienes que rezarle a $DEIDAD
> para que una funcionalidad especial (como los sockets o el control de
> procesos) esté disponible de manera usable.
>
> Sin ir más lejos, hace unos días comentaba con alguien que desarrolla
> PHP (no "en el lenguaje", sino que hace el intérprete), y dijo que
> recién para PHP 5.3, se está arreglando el manejo de memoria para que
> no use "alloca()" (luego dijo algo de un stack que se llena rápido)...
> y una serie de detalles más que debido a mi alto nivel de grados
> alcohólicos (hey, es domingo en la mañana!!!) no comentaré.
>
> Yo personalmente, no puedo tenerle mala al lenguaje y lo defiendo
> cuando es posible y veo que las cosas no se están haciendo bien; gané
> mis lucas justas usándolo porque era la herramienta precisa para la
> tarea precisa; pero cuando las razones técnicas para no usarlo son de
> peso, no queda otra que reconocerlas. Y no por eso seré un fanboy.
>
> Saludos,
>
> --
> Rodrigo Fuentealba
> http://www.thecodekeeper.net/
>
>
--
Eduardo Silva
http://edsiper.linuxchile.cl
Más información sobre la lista de distribución Linux