Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

[C] problemas ftp server en C

Participa en el tema [C] problemas ftp server en C en el foro Programación.
Gente, les cuanto el problema. Estoy construyendo un server ftp para la facu y me ...

Buscar en este tema:
 
  •  
    dragonz escribió el 08/12/2005 a las 20:12 hs.
     
    ¿Mensaje inapropiado?
    #1 [C] problemas ftp server en C
    Gente, les cuanto el problema. Estoy construyendo un server ftp para la facu y me quede trabado en el pasv. Que es el PASV para quien no sabe y quiere ayudar. El pasv es un comando que manda el cliente cuando va a hacer un get o put. Lo que hace el comando es:
    El cliente manda el PASV
    El servidor lo interpreta y le manda la IP y el puerto a donde el cliente se debe conectar
    El cliente hace un connect con esa Ip y Puerto que le mando
    El servidor hace un accept
    Eso es basicamente lo que hace el pasv
    Que es lo que me pasa, yo tengo harcodeado la ip y el puerto para que por ahora no me traiga problemas. El problema se da cuando hago el accept, no se si manda algo el cliente y tampoco se si yo hago bien el accept.

    Abajo esta el codigo, debugueando un poco llega hasta printf ("paso el size y es: %d\n", sin_size); y el cliente me tira un mensaje ftp: connect: Connection refused (esto creo que lo hace de mi lado)

    Código:
    int conectarServidorPasv(int *puerto,char tipo, int sockfd){
        struct sockaddr_in my_addr,client_addr;
        int clientfd;
        int sin_size;
    		
        if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
          perror("Error creando el socket");
          return 1;
        }
    		
        printf("estoy escuchando por el puerto: %d\n",*puerto);
        logg(tipo,1,"Estableciendo parametros de Servidor\n");
        my_addr.sin_family = AF_INET;
        my_addr.sin_port = htons(*puerto);
        my_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); 
        bzero(&(my_addr.sin_zero), 8);
            
        if (bind(sockfd, (struct sockaddr *) &my_addr, sizeof(struct sockaddr))== -1) {
          perror("Error en el bind\n");
          return 1;
        }
        printf ("Paso el Bind\n");
        if (listen(sockfd, BACKLOG) == -1) {
          perror("Error en el listen\n");
          return 1;
        }
        printf ("Paso el listen\n");
        printf ("Imprimo socktfd %d", sockfd);
        sin_size = sizeof(client_addr);
        printf ("paso el size y es: %d\n", sin_size);
        if ((clientfd = accept(sockfd, (struct sockaddr *) &client_addr,&sin_size)) == -1) {printf("NO ACEPTO UNA BOSTA");}
        printf ("PASO EL ACCEPT\n");       	 
        logg(tipo,1,"Coneccion establecida"); 
        return clientfd;
    }
    
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/programacion.313/306827-c-problemas-ftp-server-en-c.html
    | Más
  • dragonz escribió el 09/12/2005 a las 17:36 hs. ¿Mensaje inapropiado?

    #2 Re: problemas ftp server en C

    la funcion estaba bien el problema q tenia era q estaba tomado el puerto
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 1 RESPUESTA
  • 411 VISTAS
  • 1 USUARIO RESPONDIO
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB