Linux - VERSION SENDMAIL desde "C"

 
Vista:

VERSION SENDMAIL desde "C"

Publicado por danie (1 intervención) el 27/05/2005 23:06:32
A ver, necesito ayuda urgente en este tema. Resulta que necesito saber la version de un pc(por ejemplo el mio) desde un programa en "C" (en mi caso un servidor que devuelve a su cliente la version del sendmail del pc del cual ha proporcionado su IP.

Yo he creado un void tal que asi:

bzero (&buffer,sizeof(buffer));
struct sockaddr_in direccionServidor2;
int descSocket2;
const char puerto[] = "25";
bzero((char*)&direccionServidor2, sizeof(direccionServidor2));
direccionServidor2.sin_family = AF_INET;
direccionServidor2.sin_addr.s_addr = ip;
direccionServidor2.sin_port = htons(atoi(puerto));

if ((descSocket2 = socket(AF_INET, SOCK_STREAM, 0))<0){
fprintf(stderr, "CLIENTE no se ha podido abrir el socket");
exit(-1);
}
printf("socket creado \n");

if (connect(descSocket2, (struct sockaddr*)&direccionServidor2, sizeof(direccionServidor2))<0){
fprintf(stderr, "CLIENTE no se a podido conectar al servidor\n");
exit(-1);
}
recv (descSocket2, &buffer, sizeof(buffer), 0); //aqui falla (supuestamente)

El recv tendria que devolverme en el buffer la linea de texto que devolveria al hacer un telnet a esa direccion IP en el puerto 25. E l problema es que en el buffer lo que se devuelve es 50. No entiendo porque sale ese valor.

A ver si alguien me puede ayudar a resolverlo antes del domingo por favor, es muy sencillo para quien sepa programacion de sockets en c en linux. Gracias.

PD: el buffer es de 1024 char
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder