Foros del Web » Programando para Internet » PHP »

error de tiempo excedido por conexion socket

Estas en el tema de error de tiempo excedido por conexion socket en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente problema: Tengo una pagina php con un bucle for que lo que hace es abrir un socket y comunicarse ...
  #1 (permalink)  
Antiguo 10/08/2004, 11:09
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Sonrisa error de tiempo excedido por conexion socket

Hola a todos. Tengo el siguiente problema:

Tengo una pagina php con un bucle for que lo que hace es abrir un socket y comunicarse con otro equipo, luego le paso un dato y espero su respuesta.

Estoy haciendo pruebas cuando no es posible comunicarse con el otro equipo porque esta apago. Mi bucle for tiene la siguiente pinta:


for($i=0;$i<$num_servidores;$i++){

$Conexion = fsockopen("$servidor","3500");
fputs($Conexion,$dato);
$respuesta=fgets($Conexion,128);
fclose($conexion);

}


Cuando el for se realiza una sola vez funciona bien (estoy probandolo cuando el otro equipo esta apagado) pero cuando el bucle se realiza varias veces obtengo el siguiente error:


Fatal error: Maximum execution time of 30 seconds exceeded in c:\apache\htdocs\web_css6\gestionexperimentos.php on line 300


siendo la linea 300 la correspondiente a :

$respuesta=fgets($Conexion,128);

es decir, donde espera la respuesta.

No entiendo porque cuando el bucle se realiza una vez funciona bien pero cuando se realiza mas de una vez me sale ese error. Digo yo que el tiempo de espera no se acumula desde la primera conexion hasta la última y por eso excede de 30 segundos que es el tiempo que tarda en darse por terminada la conexion?
Porque darse cuenta que yo cierro y abro la conexion socket cada vez que me comunico con un nuevo servidor.

Necesito una ayuda porque no se donde esta el problema.

Un saludo.
  #2 (permalink)  
Antiguo 10/08/2004, 11:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

El error no se refiere al socket, sino al limite de tiempo que tiene un script PHP para ejecutarse. Podrias hacer un bucle infinito, pero a los 30 segundos (o lo que tenga configurado el servidor) se cortaria la ejecucion. Y como normalmente un servidor web esta bastante escaso de recursos, es una muy buena idea que PHP tenga ese tipo de limites.

Revisa set_time_limit() (www.php.net/set_time_limit), para poder jugar con ese limite de ejecucion por script.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 10/08/2004, 12:16
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Gracias josemi por responder. El error es ese que me comentabas y lo he solucionado llamando a esa funcion que me has puesto.

Lo dicho, muchas gracias por ayudarme.

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:21.