• Viernes 8 de Noviembre de 2024, 19:41

Autor Tema:  Transferencia De Archivos Por Sockets  (Leído 16811 veces)

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Transferencia De Archivos Por Sockets
« en: Viernes 8 de Septiembre de 2006, 02:29 »
0
:rolleyes:  hola!!! una inquietud no se quien me pueda ayudar con esto es que teno un pequeno dilema estoy tratando de enviar un archivo de cualquier tipo y un tama;o limitado por un socket en java pero no se como hacer..... me podrian ayudar tan siquiera con un codigo guia o la clase que me pueda ayudar a a ralizar eso

agradesco a quien me colabore si!!!! por fa es de vida o muerte :scream:


GRACIAS :comp:
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Transferencia De Archivos Por Sockets
« Respuesta #1 en: Viernes 8 de Septiembre de 2006, 07:54 »
0
Hola...

No sé qué es lo que no entiendes. Parece que lo tienes todo claro, ¿no?

En la clase Socket tienes un getOutputStream y un getInputStream que te devuelven los flujos de entrada / salida que necesitas para el enviar el fichero.

Usa un FileInputStream para leer el archivo y ya está.

Recuerda que, mientras el cliente tiene que usar la clase Socket para las comunicaciones, el servidor tendrá que utilizar una clase ServerSocket, para mantenerse a la escucha en el puerto por donde realices la comunicación.




Espero haberte aclarado algo.

Un saludo.


Silverfox.

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Re: Transferencia De Archivos Por Sockets
« Respuesta #2 en: Viernes 8 de Septiembre de 2006, 14:34 »
0
:lol: pos si tengo idea de que se hace algo asi pero no se como.... es que el manejo de archivos en java no es mi fuerte... agradeceria un codigo de ejemlo o si alguien sabe de una guia :rolleyes:  :P
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964

Misuvija

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: Transferencia De Archivos Por Sockets
« Respuesta #3 en: Viernes 8 de Septiembre de 2006, 16:52 »
0
Hola! Todo bien, revisate este manual de sockets, está super completo.  Estoy segura que te ayudará cantidad, trae muchos ejemplos!!!
http://www.cica.es/formacion/JavaTut/Cap9/comms.html

Bye!!!!!!!!   :P
Any

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Transferencia De Archivos Por Sockets
« Respuesta #4 en: Sábado 9 de Septiembre de 2006, 00:04 »
0
Primero lo primero :D ... El servidor recibe un archivo del cliente y lo escribe en su disco duro(espero que recuerdes que el servidor se debe lanzar primero)


Código: Text
  1. /*
  2.  * Servidor.java
  3.  *
  4.  * Author: Antony Delgado
  5.  * Created: 31 de Agosto de 2006
  6.  */
  7.  
  8. import java.net.ServerSocket;
  9. import java.net.Socket;
  10. public class Servidor implements Runnable {
  11.     ServerSocket server;
  12.     public Servidor() {
  13.         try {
  14.             //CREAMOS EL SOCKET DEL SERVIDOR
  15.             server=new ServerSocket(2002);
  16.             System.out.println(&#34;Servidor corriendo...&#34;);
  17.         } catch(Exception e) {
  18.             System.out.println(&#34;Error al correr el servidor&#092;n&#34;+e);
  19.             System.exit(1);
  20.         }
  21.     }
  22.    
  23.     public void run() {
  24.         Socket client=null;
  25.         while (true) {
  26.             if (server==null)
  27.                 return;
  28.             try {
  29.                 //ESPERA A QUE LLEGUE UN CLIENTE
  30.                 client=server.accept();
  31.                 System.out.println(&#34;Llegó un cliente!&#34;);
  32.             } catch(java.io.IOException e) {
  33.                 System.err.println(&#34;No se pudo establecer conexión &#34; + e.getMessage());
  34.             }
  35.             try {
  36.                 //ABRIMOS UN BUFER PARA DESCARGAR LO QUE EL CLIENTE NOS ESTÁ ENVIANDO
  37.                 java.io.InputStream in = client.getInputStream();
  38.                 //CREAMOS LA INSTANCIA PARA ESCRIBIR EL ARCHIVO EN DISCO
  39.                 java.io.FileOutputStream out = new java.io.FileOutputStream(new java.io.File(&#34;C:&#092;&#092;php.pdf&#34;));
  40.                 byte[] buf = new byte[1024];
  41.                 int len;
  42.                 while ((len = in.read(buf)) &#62; 0) {
  43.                     out.write(buf, 0, len);
  44.                 }
  45.                 in.close();
  46.                 out.close();
  47.             } catch(java.io.IOException e) {
  48.                 System.out.println(&#34;Error: &#34; + e);
  49.             }
  50.         }
  51.     }
  52.    
  53.     public static void main(String a[]) {
  54.         Servidor servidor = new Servidor();
  55.         // Ponemos a correr nuestro hilo servidor
  56.         new Thread(servidor).start();
  57.     }
  58. }
  59.  


Segundo lo segundo :P ... el cliente le envia un archivo al servidor pero primero lo lee de su discoduro y le envía los bytes al servidor...
Código: Text
  1.  
  2. /*
  3.  * Cliente.java
  4.  *
  5.  * Author: Antony Delgado
  6.  * Created: 31 de Agosto de 2006
  7.  */
  8.  
  9. import java.net.Socket;
  10. import java.io.InputStreamReader;
  11.  
  12. public class Cliente {
  13.     private String ip = &#34;127.0.0.1&#34;;//O localhost o la que quieras 192.168.0.1 etc...
  14.     private int puerto = 2002;
  15.     private String nomArchivo = &#34;D:&#092;&#092;Antony&#092;&#092;REDES&#092;&#092;php.pdf&#34;;
  16.     public Cliente(){
  17.         Socket socket = null;
  18.         java.io.FileInputStream in = null;
  19.         java.io.FileOutputStream pt = null;
  20.         try {
  21.             socket = new Socket(ip,puerto);
  22.             pt = (java.io.FileOutputStream)socket.getOutputStream();//
  23.             in = new java.io.FileInputStream(new java.io.File(nomArchivo));
  24.         } catch(Exception e) {
  25.             System.out.println(&#34;No se pudo crear la conexión&#092;n&#34;+e);
  26.         }
  27.         try {
  28.             socket.sendUrgentData(100);
  29.             byte[] buf = new byte[1024];
  30.             int len;
  31.             while ((len = in.read(buf)) &#62; 0 ){
  32.                 pt.write(buf, 0, len);
  33.             }
  34.             pt.close();
  35.             in.close();
  36.             socket.close();
  37.         } catch(Exception e) {
  38.             System.out.println(&#34;Error al enviar mensaje&#092;n&#34;+e);
  39.         }
  40.     }
  41.     public static void main(String a[]) {
  42.         new Cliente();
  43.     }
  44. }
  45.  

Espero te sirva
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]