Si eres usuario
Ingresa aquí »
¿Eres nuevo?
Regístrate
  • Google
  • Artículos
  • Foros
  • Fotos
  • Videos
  • Amigos
Estás en: Inicio / Foros / Informática / Programación

Respuesta
 
LinkBack Herramientas Buscar en este tema
Chimpancé
[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;
}
Chimpancé
Re: problemas ftp server en C
la funcion estaba bien el problema q tenia era q estaba tomado el puerto
 
Respuesta



Herramientas Buscar en este tema
Buscar en este tema:

Búsqueda avanzada
Califica este tema
Califica este tema:


Este tema está relacionado con otros ya publicados en el sitio. Podés visitarlos ahora!
Tema Iniciado por Foro Resp. Último mensaje
Problemas con Win 2000 Server Melkaiah Redes Informáticas 6 07.02.2005 13:00 hs.
Problemas Con Iis Server highlander8 IT Pro - Servidores 3 21.12.2004 23:22 hs.
Problemas con server -=( Anu3ys )=- Juegos de Pc 0 04.11.2003 22:46 hs.
Server, problemas de lag Argento1982 Juegos de Pc 5 03.02.2003 10:09 hs.
Problemas con el Server Psico Noticias 4 25.03.2002 16:20 hs.

Ranking de temas y usuarios de este foro
Temas populares Usuarios más activos
• Cliente Servidor UDP en C#
• Ayuda-Como Insertar filas en un JTable y...
• Juego de Truco Open Source - Se necesitan...
• Leer/escribir archivos binarios
• Necesito AYUDA-ALGORITMOS!
• AGUSTIN_RAMONE
• pangus
• ExtrañoInocente
• -HeavenMight-
• Kryptonyte


 
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
CertificaIAB
{{diadelamigo}}