SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: maikmr en Jueves 29 de Marzo de 2007, 20:30

Título: Servidor Se Detiene!
Publicado por: maikmr en Jueves 29 de Marzo de 2007, 20:30
hola Colegas foristas!, estoy haciendo mis primeras armas en cuestiones Web!, Cree un socket en PHP y el "Servidor" lo pongo a trabajar pero despues de un corto tiempo el servidor se detiene, como hago para que no se detenga?, hay una instruccion que se supone evita que se detenga, pero igual ocurre. Estoy trabajando desgraciadamente con Windows por aquello con el IIS, ah! aca les dejo el codigo talves le sirva de algo a alguien mas!.
Código: Text
  1.  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <title>Mi servidor</title>
  7. </head>
  8. <body>
  9. <center><h1>Mi servidor</h1></center>
  10. <?php
  11. //muetra todos los errores que se presenten durante la ejecucion
  12. error_reporting(E_ALL);
  13. //Desabilia el tiempo de espera del scrip para permitir esperar conecciones.
  14. set_time_limit(0);
  15. //direccion de la maquina
  16. $direccion = 'localhost';
  17. //puerto de salida
  18. $puerto = 10000;
  19. //Crea el socket, recibe (dominio, tipo y protocolo) establecido por constates definidas por php
  20. if (($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0)
  21. {
  22.    echo "socket_create() Falló: Motivo: " . socket_strerror($puerto) . "<br>";
  23. }
  24. //Asocia la direccion y puerto de la maquina con el socket creado
  25. if (($retorno = socket_bind($socket, $direccion, $puerto)) < 0)
  26. {
  27.    echo "socket_bind() Falló: Motivo: " . socket_strerror($retorno) . "<br>";
  28. }
  29. //Pone el socket a escuchar solicitudes de coneccion
  30. if (($retorno = socket_listen($socket, 5)) < 0)
  31. {
  32.    echo "socket_listen() Falló: Motivo: " . socket_strerror($retorno) . "<br>";
  33. }
  34. //el socket acepta la primer solicitud del cliente
  35. do
  36. {
  37.   if (($sock_acepted = socket_accept($socket)) < 0)
  38.   {
  39.      echo "socket_accept() Falló: Motivo: " . socket_strerror($sock_acepted) . "<br>";
  40.   }
  41.   //una vez aceptada la conexión se lee el primer paquete que escriba el cliente
  42.   $lectura = socket_read($sock_acepted, 2048);
  43.   //imprime lo que el cliente dice
  44.   echo "<b>Cliente dice: </b>" . $lectura . "<br>";
  45.   //Escribe al cliente una respuesta a lo que este dijo!
  46.   $escritura = 'Hola cliente!!!' . ' Me mandaste a decir: '. $lectura;
  47.   socket_write($sock_acepted, $escritura, 2048);
  48.   //cierra el socket
  49.  
  50.   if ($lectura=="salir")
  51.   {
  52.     break;
  53.   }
  54. }while(true);
  55.  
  56. socket_close($socket);
  57. ?>
  58. </body>
  59. </html>
  60.  
  61.  
  62.  
Título: Re: Servidor Se Detiene!
Publicado por: LeGatoRojo en Lunes 16 de Abril de 2007, 09:06
Algunos servidores tiene una variable timeout que es el tiempo maximo de espera, tal vez sea eso ...