Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2012, 10:11
diego_gonda
 
Fecha de Ingreso: noviembre-2012
Mensajes: 14
Antigüedad: 11 años, 6 meses
Puntos: 0
Servidor HTTP

Hola foreros!
soy relativamente novato en esto de la programación y tengo una pequeña duda, a ver si me podéis echar un cable. Tengo que implementar un servidor HTTP en C++, el caso es que en la función que recoge las peticiones que se le hacen, en la primera ejecución se procesa correctamente, pero a partir de ahí, no sé por qué, se introduce un caracter extraño en la primera posición de la petición.
Para que nos entendamos, la petición se recoge en la variable buffer (char*) y se concatena en la variable llegada. Es en ésta donde aparece el caracter extraño.
Código C++:
Ver original
  1. while (conexion==1)
  2.     {
  3.       llegada = new char [1024];
  4.      
  5.       do //Este do es el que permite recibir mensajes con varias líneas mediante telnet.
  6.       ///   while(1)
  7.     {
  8.       buffer = new char [1024];
  9.       n_recv = recv (len, buffer,1024, 0);
  10.  
  11.       if (n_recv == 0)
  12.         {
  13.           cout << "->\tConexión cerrada por el cliente." << endl;
  14.           close(len);
  15.           return;
  16.         }
  17.       else if (n_recv== -1)
  18.         {
  19.           close(len);
  20.           return;
  21.         }
  22.       strcat(llegada,buffer); //concatena el contenido de ambas variables. Es decir, poner a continuacion de mensaje el contenido de buf. En
  23.     }
  24.       while (strstr(llegada,"\r\n\r\n")==NULL); // \r\n\r\n indica el final de la petición HTTP
  25.      
  26.       cout << llegada << endl;
  27.  
  28. //código que procesa la petición
  29.  
  30. delete llegada;
Alguien ve algún fallo que pueda estar provocando esto.
Gracias por adelantado :D