• Domingo 12 de Mayo de 2024, 01:24

Autor Tema:  Cliente Ftp.  (Leído 2955 veces)

Escalona

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Cliente Ftp.
« en: Viernes 28 de Julio de 2006, 13:50 »
0
Bueno eso, ando buscando alguna librería para hacer un cliente FTP en C, la idea es subiry bajar archivos de un servidor FTP, tampoco es gran cosa, supongo ke habrá bastante, ¿Que me recomendais? :comp:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Cliente Ftp.
« Respuesta #1 en: Viernes 28 de Julio de 2006, 14:29 »
0
en windows... la api de windows
en linux tambien la api.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

x.cyclop

  • Miembro de PLATA
  • *****
  • Mensajes: 1039
  • Nacionalidad: mx
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #2 en: Viernes 28 de Julio de 2006, 20:02 »
0
Checa el código del FileZilla o del Gftp. :P

- Great works aren't produced on the first try. [Ernest Hemingway]
- Be ambitious, yet realistic in your dreams. Do something that makes a positive impact. Don’t let the nay-sayers get you down. [Bjarne Stroustrup]

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #3 en: Sábado 29 de Julio de 2006, 03:20 »
0
Forma dificil: Socket.
Forma facil: curl
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Cliente Ftp.
« Respuesta #4 en: Sábado 29 de Julio de 2006, 04:43 »
0
Benisima , no la conocia!!!! :devil:

para tenerla e cuenta.  :smartass:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #5 en: Sábado 29 de Julio de 2006, 08:12 »
0
Como para casi cualquier proyecto de redes se usan sockets (en Windows existe Winsock) y se debe aprender el protocolo que se quiera usar en este caso FTP, busca el RFC correspondiente.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Escalona

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #6 en: Lunes 31 de Julio de 2006, 09:35 »
0
Buenas! Gracias por las respuestas. Me parece interesante la librería cURL, pero no encuentro mucha documentacion, de momento estoy intentando instalarla para usarla con DevCpp, y estoy buscando algun ejemplo para ver como funciona. ¿Sabríais decirme algun lugar donde encontrarlo?.
Bueno si no me va bien con ésta librería, me decantaré por los sockets, que ya lo he hecho antes, pero desde Visual Basic, con el control Winsock.

Escalona

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #7 en: Lunes 31 de Julio de 2006, 12:45 »
0
Buenas ya estoy empezando con los sockets, y me e encontrado con mi primer problema, jjajaja. Bueno el caso es que más o menos voy conociendo la estructura que tienen, creo el socket, le doy la direccion a la que quiero conectarme, pero, me falla la conexion. El codigo es éste:

Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <winsock.h>
  4.  
  5. #define PORT 23           // Port it Connect on
  6. #define DATASIZE 100
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10. WSADATA wsaData;
  11. WSAStartup(MAKEWORD(1, 1), &wsaData);
  12.  
  13. int sock, numbytes;
  14. char buf[DATASIZE];
  15. struct hostent *h;
  16. struct sockaddr_in their_addr;
  17.  
  18. // cambiando el argv[1] especifico donde kiero conectar.
  19. if ((h=gethostbyname(argv[1])) == NULL) {
  20. perror("gethostbyname");
  21. exit(1);
  22. }
  23. system("PAUSE");
  24.  
  25. if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
  26. perror("socket");
  27. exit(1);
  28. }
  29. system("PAUSE");
  30.  
  31. their_addr.sin_family = AF_INET;
  32. their_addr.sin_port = htons(PORT);
  33. their_addr.sin_addr = *((struct in_addr *)h->h_addr);
  34. //their_addr.sin_addr = "66.102.9.99";
  35.  
  36. if (connect(sock, (struct sockaddr *)&their_addr,sizeof(struct sockaddr)) == -1) {
  37. perror("connect");
  38. system("PAUSE");
  39. exit(1);
  40. }
  41. system("PAUSE");
  42.  
  43.  
  44. if ((numbytes=recv(sock, buf, DATASIZE-1, 0)) == -1) {
  45. perror("recv");
  46. exit(1);
  47. }
  48. system("PAUSE");
  49.  
  50. buf[numbytes] = '0';
  51. printf("Data Received: %s", buf);
  52.  
  53. system("PAUSE");
  54.  
  55. closesocket(sock);
  56. return 0;
  57. }
  58.  
  59.  

elvueno

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #8 en: Lunes 31 de Julio de 2006, 12:57 »
0
Escalona ese código no es más bien para linux? Yo he empezado con los sockets y he hecho algún source para linux y si es muy parecido que el tuyo, solo cambia #include <winsock.h> y el WSADATA wsaData, lo demás es exactamente igual en linux, ¿seguro que se hace así en windows?

Otra cosa, respecto a lo del ftp, habria que saber programar sockets a nivel de raw sockets o nivel del protocolo IP? o simplemente sabiendo manejar SOCK_STREAM se puede hacer un cliente ftp? La verdad es que no me he planteado como lo podria hacer...

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #9 en: Lunes 31 de Julio de 2006, 22:25 »
0
Cita de: "Escalona"
Buenas! Gracias por las respuestas. Me parece interesante la librería cURL, pero no encuentro mucha documentacion, de momento estoy intentando instalarla para usarla con DevCpp, y estoy buscando algun ejemplo para ver como funciona. ¿Sabríais decirme algun lugar donde encontrarlo?.
Bueno si no me va bien con ésta librería, me decantaré por los sockets, que ya lo he hecho antes, pero desde Visual Basic, con el control Winsock.
http://curlftpfs.sourceforge.net/
http://efstech.dk/
http://curl.haxx.se/docs/programs.html
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Escalona

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #10 en: Martes 1 de Agosto de 2006, 09:47 »
0
No hay manera de instalar el cURL, parecere un poco torpe, o más ke parecerlo lo seré. El caso es que desarrollo en Windows XP con el DevCpp. Sigo los pasos, paso a paso, que me indica el archivo de instalacion para el DevCpp ("install.Devcpp"), que viene en la web, y no hay manera de que la libreria se instale bien, me da cantidad de errores.
Tambien instalo OpenSSL, y zlib por el tema de las dependencias.La verdad que ya estoy un poco desesperado, si podeis ayudarme lo agradezco. :(

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Cliente Ftp.
« Respuesta #11 en: Martes 1 de Agosto de 2006, 16:42 »
0
¿Por qué no pruebas con el paquete ya preparado para Win32/XP en lugar de tratar de compilar?

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #12 en: Martes 1 de Agosto de 2006, 22:38 »
0
Cita de: "Geo"
¿Por qué no pruebas con el paquete ya preparado para Win32/XP en lugar de tratar de compilar?

Saludos,
JJ (Geo).
Es muy buena idea.
En cuanto a lo otro, pues no se, no uso Windows.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Escalona

  • Miembro activo
  • **
  • Mensajes: 63
    • Ver Perfil
Re: Cliente Ftp.
« Respuesta #13 en: Miércoles 2 de Agosto de 2006, 11:03 »
0
Bueno ya estoy trabajando con cURL, me bajé la version compilada para windows y tachán funciona perfectamente. ¿Como fue ke no se me ocurrió antes? jajaja Bueno muchas gracias por vuestra ayuda!, permanezco por aqui por si puedo ayudar a alguien, hasta la proxima.