Foros del Web » Programación para mayores de 30 ;) » Programación General »

Sockets en Linux

Estas en el tema de Sockets en Linux en el foro de Programación General en Foros del Web. Que tal amigos, tengo necesito ayuda en un pequeño programa que hize con sockets, aqui les dejo el codigo pa k lo vean Código: #include<stdlib.h> ...
  #1 (permalink)  
Antiguo 15/05/2005, 18:36
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años, 7 meses
Puntos: 15
Sockets en Linux

Que tal amigos, tengo necesito ayuda en un pequeño programa que hize con sockets, aqui les dejo el codigo pa k lo vean

Código:
#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;
}
Me parece que hay un error en la parte donde se recibe con la funcion recv() por que no sale lo que deberia salir.

Espero su ayuda. Muchas gracias.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #2 (permalink)  
Antiguo 16/05/2005, 00:36
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Me imagino que el servidor no te respondera hasta encontar un salto de linea, proba con: buffer1 = "HELO neo\r\n";


http://www.faqs.org/rfcs/rfc821.html
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:14.