Te tengo otra pregunta, mi programa recive de un servidor una estructura compuesta por 4 char* de longitud (los primeros 3) menor a 512 bytes y la 4ta de tamaño variable entre 1 y nose.... 9999999..muchos bytes, depende de la persona que haya cargado la informacion en esa estructura, no importa. Y como ultima transferencia recibe un ".". El hecho es que mi programa hace un recv, un malloc y un strcpy para el 1er, 2do y 3er campo. Para el 4to hago algo asi:
memset(buffer, 0 ,512);
i = recv(buffer);
buffer[i]='\0';
while(strcmp(buffer, "."))
{
estructura.m_cuerpo = (char*)realloc(estructura.m_cuerpo, SIZEOF(CHAR)*STRLEN(BUFFER) +1);
if(strlen(estructura.m_cuerpo) > 0)strcat(estructura.m_cuerpo, buffer);
else strcpy(estructura.m_cuerpo, buffer);
memset(buffer, 0, 512);
i =recv(buffer);
buffer[i]='\0';
}
Lo que estoy preguntando es, de que forma puedo hacer ese WHILE para que vaya agrandando la variable hasta que reciba del socket un ".". Y esta mal el tamaño del realloc, lo se jajaj.
Todo esto forma parte de un sistema que estoy haciendo para un trabajo practico, es un servidor de noticias que utiliza el protocolo nntp (un toke simplificado) esos 4 campos serian los campos de un articulo de noticias ID, groupname, head y body. Los primeros 3 basta con 512 bytes (1 lectura de socket) y el body puede llegar a ser mas grande, el tema es como agrando correctamente el body de mi estructura?