Código:
Me parece que hay un error en la parte donde se recibe con la funcion recv() por que no sale lo que deberia salir. #include<stdlib.h> #include<sys/socket.h> #include<stdio.h> #include<netinet/in.h> #include<arpa/inet.h> #include<string.h> int main(int argc,char* argv[]) { const int Puerto=25; struct sockaddr_in Servidor; int IdScaner; Servidor.sin_family=AF_INET; inet_aton(argv[1],&Servidor.sin_addr); Servidor.sin_port=htons(Puerto); IdScaner=socket(PF_INET,SOCK_STREAM,0); printf("---------------------------------------\n"); printf(" Scaneador de puertos SMTP StoneScan\n"); printf(" Copyright 2005\n"); printf("---------------------------------------\n\n"); if(IdScaner==-1) { puts("Hubo un error al crear el socket"); exit(-1); } else { if(connect(IdScaner,(struct sockaddr*)&Servidor,sizeof(Servidor))==0) { puts("Servidor SMTP funcionando"); char *buffer1; char *buff1; int bytes_enviados1,bytes_recibidos1; buffer1="HELO "; bytes_enviados1=send(IdScaner,buffer1,strlen(buffer1),0); if(bytes_enviados1==-1) printf("Fallo al mandar HELO"); printf("Comando HELO enviado satisfactoriamente \n"); bytes_recibidos1=recv(IdScaner,buff1,strlen(buff1),0); if(bytes_recibidos1==-1) printf("mal \n"); else printf("%s \n",buff1); } else { puts("Servidor SMTP no esta funcionando"); exit(-1); } } return 0; }
Espero su ayuda. Muchas gracias.