Mi servidor se detiene!

Iniciado por tonder, 29 Marzo 2007, 20:44 PM

0 Miembros y 1 Visitante están viendo este tema.

tonder

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!.


<html>
<head>
<title>Mi servidor</title>
</head>
<body>
<center><h1>Mi servidor</h1></center>
<?php
//muetra todos los errores que se presenten durante la ejecucion
error_reporting(E_ALL);
//Desabilia el tiempo de espera del scrip para permitir esperar conexiones.
set_time_limit(0);
//direccion de la maquina
$direccion 'localhost';
//puerto de salida
$puerto 10000;
//Crea el socket, recibe (dominio, tipo y protocolo) establecido por constates definidas por php
if (($socket socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0
{
  echo 
"socket_create() Falló: Motivo: " socket_strerror($puerto) . "<br>";
}
//Asocia la direccion y puerto de la maquina con el socket creado
if (($retorno socket_bind($socket$direccion$puerto)) < 0
{
  echo 
"socket_bind() Falló: Motivo: " socket_strerror($retorno) . "<br>";
}
//Pone el socket a escuchar solicitudes de conexión
if (($retorno socket_listen($socket5)) < 0
{
  echo 
"socket_listen() Falló: Motivo: " socket_strerror($retorno) . "<br>";
}
//el socket acepta la primer solicitud del cliente
do
{
  if ((
$sock_acepted socket_accept($socket)) < 0
  {
     echo 
"socket_accept() Falló: Motivo: " socket_strerror($sock_acepted) . "<br>";
  }
  
//una vez aceptada la conexión se lee el primer paquete que escriba el cliente
  
$lectura socket_read($sock_acepted2048);
  
//imprime lo que el cliente dice
  
echo "<b>Cliente dice: </b>" $lectura "<br>";
  
//Escribe al cliente una respuesta a lo que este dijo!
  
$escritura 'Hola cliente!!!' ' Me mandaste a decir: '$lectura;
  
socket_write($sock_acepted$escritura2048);
  
//cierra el socket
  
  
if ($lectura=="salir")
  {
    break;
  }
}while(
true);

socket_close($socket);
?>

</body>
</html>

Ertai

Hola.

Puedes explicar un poco más tu problema?

Desde donde envias los datos? Este es el archivo que los recoje, cierto?

Yo creo que tu problema es el while(true) aunque no te lo puedo asegurar. Creo que de alguna manera el servidor intenta NO quedarse en bucle infinito, ya que sino cualquiera podría saturar un servidor creando un bucle infinito.

Detalla un poco más tu problema e intentamos ayudarte.

PD: Las respuestas que he borrado, las he borrado porque no me parece una respuesta correcta decir que Windows es el problema y quedarse tan ancho, lo siento, pero para decir algo así, falta aportar argumentos. No soy pro nada ni anti nada, pero respuestas asi no valen. Esto esta mas que hablado en el staff.
Si la felicidad se comprara, entonces el dinero sería noble.


void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}