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 originalwhile (conexion==1)
{
llegada = new char [1024];
do //Este do es el que permite recibir mensajes con varias líneas mediante telnet.
/// while(1)
{
buffer = new char [1024];
n_recv = recv (len, buffer,1024, 0);
if (n_recv == 0)
{
cout << "->\tConexión cerrada por el cliente." << endl;
close(len);
return;
}
else if (n_recv== -1)
{
close(len);
return;
}
strcat(llegada
,buffer
); //concatena el contenido de ambas variables. Es decir, poner a continuacion de mensaje el contenido de buf. En }
while (strstr(llegada
,"\r\n\r\n")==NULL
); // \r\n\r\n indica el final de la petición HTTP
cout << llegada << endl;
//código que procesa la petición
delete llegada;
Alguien ve algún fallo que pueda estar provocando esto.
Gracias por adelantado :D