| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
WaRc3L
Registrado: 12 Jun 2008 Mensajes: 199 Ubicación: en el registro de la CPU
| Publicado: 14/10/2008 12:36 pm | | | Título: Codigo Fuente de un Servidor FTP? |
| Buenas!, buscando, buscando, no he encontrado lo que buscava, y lo que estoy buscando es un Codigo fuente de un servidor FTP, sencillisimo..., con sockets, que es mi principal objetivo a aprender, se como hacer el Cliente, conectarse con un otro servidor, solo enviando Comandos, tipo SMTP..
No se si sera casi lo mismo, pero me gustaria mucho crear un servidor FTP, mi propio servidor FTP, pero, la pregunta es: ¿ Es complicado ?, porque, como mucho he visto Clientes que se conectan a otros Servidores
De veras, me sirviria muchisimo encontrar un codigo y entenderlo.
Gracias!
Saludos! _________________ ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa! |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 7520 Ubicación: Mexico
| Publicado: 15/10/2008 6:25 am | | | Título: |
| Lo mejor en estos casos es buscar en sitios especializados como codeproject, sourceforge, etc. o bien mediante un buscador decente terminos como:
source code win32 simple ftp server
Uno de los listados en Google (tal vez te sea de utilidad, tal vez no) para MS Windows y compilado con Microsoft Visual C (no indican version) es FTPDMIN.
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
| | Volver arriba | |  | WaRc3L
Registrado: 12 Jun 2008 Mensajes: 199 Ubicación: en el registro de la CPU
| Publicado: 15/10/2008 8:05 am | | | Título: |
| Muchas gracias por tu respuesta rir3760! Voy a ver que tal va, y si aun tengo alguna dudilla posteare en el foro oks?
Muchas gracias, de verdad, lo necesitava! _________________ ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa! |
| | Volver arriba | |  | | Diabliyo
Registrado: 14 Abr 2004 Mensajes: 346 Ubicación: En la Luna
| Publicado: 17/10/2008 6:19 am | | | Título: |
| Tambien puedes buscar el RFC del FTP y encontrar como se inicia una session ftp con comandos, etc, etc... Todo eso lo harias en tu socket .
Si buscas proyectos, estarias ligado a entender la logica de programacion del codigo que te bajes !!...
bye bye _________________
|
| | Volver arriba | |  | WaRc3L
Registrado: 12 Jun 2008 Mensajes: 199 Ubicación: en el registro de la CPU
| Publicado: 18/10/2008 12:53 pm | | | Título: |
| Gracias Diabliyo, pero creo que me falta un poco mas por aprender por hacer un verdadero servidor FTP, lo que estoy haciendo ahora es solo unas pequeñas funciones que se devuelven ficheros entre ellos, lista los programas de un directorio ( con dir ... ) etc..
No hago nada del modo PASIVO, o el comando PORT, y no necesitas logearte para poder entrar en mi servidor... eso es, un servidor FTP a lo cutre xD
Quando, aprende mas sobre los sockets, los hilos ( que he visto que en el codigo fuente de rir3760, hay algunos... y no entiendo casi nada ) y todo eso, hare un servidor FTP bueno, con comandos, y que se puede conectar en el puerto 21, y cosas asi, ya me entiendes.
Muchas gracias, dare un vistazo a los RFC.
Saludos! _________________ ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa! |
| | Volver arriba | |  | Diabliyo
Registrado: 14 Abr 2004 Mensajes: 346 Ubicación: En la Luna
| Publicado: 19/10/2008 9:09 am | | | Título: |
| | WaRc3L escribió: | Gracias Diabliyo, pero creo que me falta un poco mas por aprender por hacer un verdadero servidor FTP, lo que estoy haciendo ahora es solo unas pequeñas funciones que se devuelven ficheros entre ellos, lista los programas de un directorio ( con dir ... ) etc..
No hago nada del modo PASIVO, o el comando PORT, y no necesitas logearte para poder entrar en mi servidor... eso es, un servidor FTP a lo cutre xD
Quando, aprende mas sobre los sockets, los hilos ( que he visto que en el codigo fuente de rir3760, hay algunos... y no entiendo casi nada ) y todo eso, hare un servidor FTP bueno, con comandos, y que se puede conectar en el puerto 21, y cosas asi, ya me entiendes.
Muchas gracias, dare un vistazo a los RFC.
Saludos! |
Yo creo que con los conocimientos simples que tienes puedes hacerte un Servidor FTP, solamente aprende a utilizar la funcion select(), para ello te recomiendo leas este manul: Guia Beej
bye bye _________________
|
| | Volver arriba | |  | | WaRc3L
Registrado: 12 Jun 2008 Mensajes: 199 Ubicación: en el registro de la CPU
| Publicado: 19/10/2008 9:59 am | | | Título: |
| GRACIAS DIABLYO! me has dado animos! , intentare hacer el servidor de verdad, intentare hacer servir la funcion select, ( que me suena de algo, pero ahora no se que es ) , y hare un servidor FTP, de verdad! por cierto, gracias por el manual.
He visto que en el codigo fuente de rir3760, hay hilos, ( beginthread y cosas asi), los necesito obligatoriamente? por que yo aun no se nada de ellos, se que sirve para conectar dos programas o algo asi.
Solo dime una cosa, tengo que hacer todos los comandos para que sea un buen FTP? , porque, depende de los clientes, por ejemplo, el ftp de ms-dos ( sin usar telnet ) , tiene diferentes comandos, pero, funciona con el codigo fuente de rir3760, y eso no lo acabo de entender mucho...
Saludos y gracias por tus animos!  _________________ ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa! |
| | Volver arriba | |  | Diabliyo
Registrado: 14 Abr 2004 Mensajes: 346 Ubicación: En la Luna
| Publicado: 19/10/2008 11:02 am | | | Título: |
| | WaRc3L escribió: | GRACIAS DIABLYO! me has dado animos! , intentare hacer el servidor de verdad, intentare hacer servir la funcion select, ( que me suena de algo, pero ahora no se que es ) , y hare un servidor FTP, de verdad! por cierto, gracias por el manual.
He visto que en el codigo fuente de rir3760, hay hilos, ( beginthread y cosas asi), los necesito obligatoriamente? por que yo aun no se nada de ellos, se que sirve para conectar dos programas o algo asi.
Solo dime una cosa, tengo que hacer todos los comandos para que sea un buen FTP? , porque, depende de los clientes, por ejemplo, el ftp de ms-dos ( sin usar telnet ) , tiene diferentes comandos, pero, funciona con el codigo fuente de rir3760, y eso no lo acabo de entender mucho...
Saludos y gracias por tus animos!  |
En el RFC de FTP encontraras todos los comandos que existen para interactuar con un FTP, si tu implementas los comandos especificados en el RFC de FTP, tu servidor funcionara con cualquier FTP-Cliente. Ver RFC
Los procesos e hilos son una alternativa mejorada cuando no deseas utilizar select().
La funcion select() te permite tener una base de datos de todos los clientes conectados a tu programa, select() orillara a tu programa a quedarse dormido (en la llamada a select()) hasta que exista alguna interaccion con tu programa por parte de un cliente, esta interaccion podria ser: una nueva conexion o envio de datos de un cliente, cuando algo llega al puerto del programa, select() despertara y te permitira realizar alguna tarea con dicho socket, al finalizar la peticion, consulta o nueva conexion del cliente, select() volvera a dormir hasta que llegue algo mas. En pocas palabras la interaccion servidor-cliente sera uno a uno, de modo que si existen dos clientes, el segundo cliente debe esperar a que el primer cliente termine de interactuar. OJO interactuar no significa que esto se aplica desde que se conecta hasta que finaliza una peticion, sino que es cuando el cliente obtiene respuesta a su peticion.
Ejemplo:
| Código: | Servidor Abre SOCKET TCP, Puerto 1010. Servidor invoca SELECT(). Servidor queda Dormido Zzzzzz
Cliente 1 inica conexion con Servidor en Puerto 1010. Servidor Despierta y atiende la conexion aceptandolo. Servidor queda Dormido Zzzzzz
Cliente 2 inicia conexion con Servidor Servidor Despierta y atiende la conexion aceptandolo. Servidor queda Dormido Zzzzzz
Cliente 1 envia comando "listafiles" Servidor Despierta y atiende la peticion Servidor queda Dormido Zzzzzz
Cliente 2 envia comando "listafiles" Servidor Despierta y atiende la peticion Servidor queda Dormido Zzzzzz |
Los procesos e hilos te permitiran hacer que tu programa cree un nuevo proceso o hilo (segun como lo quieras) para cada cliente, de modo que todos los clientes pueden estar interactuando a la vez con tu servidor. Pero si deseas implementar procesos e hilos debes estudiar un poco sobre ellos .
bye bye _________________
|
| | Volver arriba | |  | WaRc3L
Registrado: 12 Jun 2008 Mensajes: 199 Ubicación: en el registro de la CPU
| Publicado: 19/10/2008 12:41 pm | | | Título: |
| Muchisimas gracias Diabliyo!, intentare estudiar a profundo eso de los hilos, que veo que es importante jeje, de mientras, ire haciendo el servidor FTP con la funcion select.
Muchas gracias por tu ayuda, de veras!
Saludos! _________________ ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa! |
| | Volver arriba | |  | | cheroky
Registrado: 22 Sep 2005 Mensajes: 2558 Ubicación: Valladolid (España)
| Publicado: 20/10/2008 12:03 am | | | Título: |
| Tomalo con reservas pero yo creo que estas empezando la casa por el tejado. Hacer un servidor para el protocolo FTP no es tarea sencilla. Yo comenzaría por cosas mas didácticas, consolidar conceptos de redes, repasar de forma general la torre de protocolos OSI, hacer algún programa de chat sencillo, de transferencia básica de ficheros, implementar tu propio protocolo a nivel de aplicación, etc. Con esto no quiero desanimarte pero es mas divertido y se aprende más logrando "pequeños" objetivos.
S2. _________________ La cuestión no es si hay vida inteligente en otros planetas lejanos. La cuestión es si hay vida inteligente aquí. |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |