Título: Cliente-servidor Publicado por: alzehimer_cerebral en 4 Enero 2010, 23:22 pm Hola necesito que una aplicacion del lado cliente se conecte a un servidor remoto para descargarse una estructura de directorios con sus contenidos a las maquinas clientes y cargarlas en la aplicacion cliente...
Estoy haciendo pruebas con la API java_net y me surge la duda si para lo que yo necesito me tengo que programar un programa que corra en el servidor?? o si con programar en el cliente una conexion remota a un servidor Apache y mediante sentencias de programacion ya puedo conseguir traerme la estructura de directorios??? Haber si alguien me ayuda a visualizar lo que necesito programar... Salu2 alzehimer_cerebral Título: Re: Cliente-servidor Publicado por: Leyer en 4 Enero 2010, 23:31 pm tienes que que comunicarte con el servidor por x comando el servidor recibe y ejecuta el procedimiento de listar los directorios y envias al cliente la lista ...que llevas hecho?
Título: Re: Cliente-servidor Publicado por: panaka en 5 Enero 2010, 00:31 am Mira te explico un poco por encima lo que tienes que hacer:
Tienes dos clases, una servidor con serverScoket escuchando en un puerto, y otra clase cliente con socket, te conectas al serverSocket, es decir, has establecido la conexion mira la API es muy sencillo. Una vez hecho esto en el servidor te creas un objeto de la clase FILE y con su metodo list() te devuelve un array con los directorios/archivos que contiene, y si tienes establecida la conexion solo tienes que devolverlo... ya sea con serializacion de objetos o por string... eso ya depende de lops conocimientos que tengas. Saludos Título: Re: Cliente-servidor Publicado por: alzehimer_cerebral en 6 Enero 2010, 14:33 pm Pues de momento no tengo nada hecho, solo estoy empezando a jugar con la API y parece bastante sencillo. Me han dicho que no tengo que crear un proceso que corra en la parte del servidor, ya que me vale con colgar el contenido en un servidor Apache y la parte cliente lo que tiene que hacer es conectarse a dicho servidor para traerse un fichero .xml que contiene los objetos con los cuales debo trabajar...
De momento tengo un servidor Apache con una pagina colgada, en este mismo servidor me gustaria poner el fichero .xml correspondiente para empezar a hacer las pruebas, lo que nose es en que directorio del servidor Apache colocar dicho fichero para que la parte cliente pueda acceder a el, nose si me he explicado bien.. Gracias por los aportes y feliz año a todos!! Saludos. alzehimer_cerebral Título: Re: Cliente-servidor Publicado por: Debci en 6 Enero 2010, 16:52 pm Envezde usar un file, te recomiendoq ue generas el arbol en un array y lo transmitas por dataoutput, luego al recibirlo lo recorres con algun bucle logico y lo muestreas, o simplemnete envias cada elemento del array en orden y tal cual lo recives lo construyes.
Saludos Título: Re: Cliente-servidor Publicado por: Leyer en 6 Enero 2010, 17:27 pm osea pero el servidor lo tienes que creear tu, un servidor apache no es necesario a no ser que te conectes http://localhost:8081/ en tu apache
Saludos! Título: Re: Cliente-servidor Publicado por: alzehimer_cerebral en 6 Enero 2010, 18:05 pm Por lo que me han dicho tengo que hacer un programa (parte cliente) que se conecte a un servidor Apache y coja un .xml...
No tengo que preocuparme del programa en la parte servidor ya que el propio Apache supuestamente lo gestiona todo.. Queda mas claro ahora. Que metodos existen para traerse un fichero de un servidor remoto?? Derrepente el Netbeans ya no me mete las excepciones de forma automatica al darle a la bobillita en la linea de codigo que la solicita, alguien sabe a que e debe?? Salu2. alzehimer_cerebral Título: Re: Cliente-servidor Publicado por: Leyer en 6 Enero 2010, 18:44 pm bueno solo te quedaria solo descargarlo del servidor como cuarquier archivo :P
Salu2 Título: Re: Cliente-servidor Publicado por: alzehimer_cerebral en 6 Enero 2010, 18:52 pm He encontrado el siguiente codigo http://www.seraphinux.com/index.php/855/2009/08/24/java-descargar-archivos-desde-un-servidor-remoto/ (http://www.seraphinux.com/index.php/855/2009/08/24/java-descargar-archivos-desde-un-servidor-remoto/). Lo que pasa que no se como añadir las librerias que utiliza. Alguien sabe donde conseguir as librerias??
Un saludo. alzehimer_cerebral Título: Re: Cliente-servidor Publicado por: Leyer en 6 Enero 2010, 19:11 pm esta es la lib http://www.java2s.com/Code/JarDownload/commons-httpclient.jar.zip
Saludos! Título: Re: Cliente-servidor Publicado por: -Ramc- en 6 Enero 2010, 19:15 pm Me parece que alguien debe leerse un buen tutorial de Sockets, en el paquete .net está todo lo que necesitas, toma el InputStream del socket, empieza a leer los datos que te envia el server y ya lo tienes.
Título: Re: Cliente-servidor Publicado por: Leyer en 6 Enero 2010, 19:19 pm Me parece que alguien debe leerse un buen tutorial de Sockets, en el paquete .net está todo lo que necesitas, toma el InputStream del socket, empieza a leer los datos que te envia el server y ya lo tienes. :P pero si el lo esta haciendo asi ps que lo siga haciendo no es mucha la diferenciaTítulo: Re: Cliente-servidor Publicado por: -Ramc- en 6 Enero 2010, 19:21 pm Me parece que alguien debe leerse un buen tutorial de Sockets, en el paquete .net está todo lo que necesitas, toma el InputStream del socket, empieza a leer los datos que te envia el server y ya lo tienes. :P pero si el lo esta haciendo asi ps que lo siga haciendo no es mucha la diferenciaTítulo: Re: Cliente-servidor Publicado por: alzehimer_cerebral en 6 Enero 2010, 19:25 pm Simplemente estoy buscando formas de hacerlo y la verdad que la segunda me parece mas comoda de momento. Con lo que he visto parece ser que con net API habria que tambien programar un proceso que corra en el servidor Apache y que se sincronizase con el proceso cliente, mientras que con los metodos http esto no hace falta.
LEYER ya me he bajado la libreria donde la descomprimo para poder utilizarla? Salu2 alzehimer_cerebral Título: Re: Cliente-servidor Publicado por: -Ramc- en 6 Enero 2010, 19:30 pm Debe tener uno o más .jar o class, tienes dos opciones, metes la ruta donde lo tienes en el classpath o compilas directamente indicandole el classpath.
Código: javac -classpath "$CLASSPATH:.:/usr/lib/jdk1.6.0_10/jre/lib/ext/libreria.jar" Prueba.java Título: Re: Cliente-servidor Publicado por: Leyer en 6 Enero 2010, 19:32 pm ;) bien!
esta es la segunda forma Código
PD: lo hice al instante asi que errores en el codigo se aceptan Título: Re: Cliente-servidor Publicado por: Debci en 7 Enero 2010, 13:16 pm Ese codigo lo buscaba xD, mira un cosa que quiero hacer (Servira de ayuda para el post):
Quiero hacer una relacion del progreso, ver cuantos bytes quedan por descargar, y he querido hacerlo asi: Código Pero no me da la salida que deberia, no se porque motivo,en teoria es asi disminuyo en 1 cada loop que pasa, o cuanto escribe por loop, creo que es eso el problema. Saludos Título: Re: Cliente-servidor Publicado por: Debci en 7 Enero 2010, 13:28 pm Rectifico, ya lo he consegui, aqui el metodo:
Código
Saludos Título: Re: Cliente-servidor Publicado por: alzehimer_cerebral en 7 Enero 2010, 13:31 pm LEYER gracias por tu aporte uan vez mas, el ejemplo que me pones me gusta mas ya que lleva threads incorporados. El codigo esta muy claro tambien.
Cualquier cosa os comento. Salu2. alzehimer_cerebral Título: Re: Cliente-servidor Publicado por: Leyer en 7 Enero 2010, 15:01 pm Rectifico, ya lo he consegui, aqui el metodo: Código
cierto esta listo para un progressBar aunke fuera bueno que en la salida se imprimiera en una sola linea y no salte a la siguiente desconozco eso. LEYER gracias por tu aporte uan vez mas, el ejemplo que me pones me gusta mas ya que lleva threads incorporados. El codigo esta muy claro tambien. :)Cualquier cosa os comento. Salu2. alzehimer_cerebral Título: Re: Cliente-servidor Publicado por: Debci en 7 Enero 2010, 15:23 pm Una cosa, si bajo algo grande (como la iso de open suse), me sale el length -1, alguna manera de que no pase?
Título: Re: Cliente-servidor Publicado por: Leyer en 7 Enero 2010, 15:41 pm mmm quisas el buffer este abarcano mucha memoria colocale 1024
Edit: tambien prueba el link que funciona Título: Re: Cliente-servidor Publicado por: egyware en 10 Enero 2010, 22:15 pm No habia leido la segunda parte me callo :-X PS: Citar Una cosa, si bajo algo grande (como la iso de open suse), me sale el length -1, alguna manera de que no pase? Dos cosas importantes
2º PS: Revisando el API me tope con esto Citar the content length of the resource that this connection's URL references, or -1 if the content length is not known. Bueno antes de explicar devuelve un int al parecer lo que dije solo se aplica a archivos locales y no a web, tengo que confirmarlo. Y ahora explico si el contenido es -1 porque el largo no se conoce. Asi que debe ser problema del servidor que no entrega el largo.3º PS: Citar getHeaderField(int n) Revisa los Header talvez salga un numero tan grande que no se pueda convertir a int solo a long |