Alternativa correcta (socket daemon)
Eduardo Silva
edsiper en gmail.com
Vie Ene 23 16:57:44 CLST 2009
basado en tu codigo, lo he modificado y este codigo funciona correctamente
sin incrementar el memory usage:
<?
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();
?>
fijate en unset el input, cerrar y cerrar el socket por cada bucle, de lo
contrario te quedaras sin descriptores de archivos para recibir nuevos
clientes, lo cual puede concluir en un exit.
saludos
--
Eduardo Silva
http://edsiper.linuxchile.cl
Más información sobre la lista de distribución Linux