2011-03-10 15 views
5

Soy nuevo en JAVA así que vaya fácil por favor.Enviando la imagen del cliente al servidor

Tengo un servidor y un cliente que pueden conectarse entre sí y otras cosas, pero una función del cliente es enviar una imagen al servidor. ¿Alguien puede proporcionar el código para eso (en Java, no en una web? aplicación).

+0

Entendí que no es una aplicación web. ¿O es eso? –

+0

quiero el código java –

+0

¿Qué tipo de cliente/servidor tienes? Un servidor web? ¿Servidor de aplicaciones? ¿Auto escrito? ¿Instalado? Más información por favor. –

Respuesta

5

¡Bienvenido a Java!

Para completar su tarea, puede usar Sockets.

El código de cliente:

function sendFile (String serverIp, int serverPort) { 
    int i; 
    FileInputStream fis = new FileInputStream ("/path/to/your/image.jpg"); 

    Socket sock = new Socket(serverIp, serverPort); 
    DataOutputStream os = new DataOutputStream(sock.getOutputStream()); 
    while ((i = fis.read()) > -1) 
     os.write(i); 

    fis.close(); 
    os.close(); 
    sock.close(); 
} 

código del servidor:

function listenForFile(int port) { 
    ServerSocket socket = new ServerSocket(serverPort); 
     while (true) { 

      Socket clientSocket = socket.accept(); 

      DataInputStream dis = new DataInputStream(clientSocket.getInputStream()); 
      FileOutputStream fout = new FileOutputStream("/path/to/store/image.jpg"); 
      int i; 
      while ((i = dis.read()) > -1) { 
       fout.write(i); 
      } 

      fout.flush(); 
      fout.close(); 
      dis.close(); 
      clientSocket.close(); 
     } 
} 

Tenga en cuenta que el método de servidor listenForFile() debe ser llamado antes de llamar SENDFILE() en el cliente. Y, serverPort debe ser el mismo en ambos lados.

+0

Lo siento, este código no funciona. Envía la imagen del cliente al servidor pero no se puede ver en el sistema del servidor –

+0

Envuélvala en un BufferedOutputStream/BufferedInputStream para un mejor rendimiento. – Milde

+0

Servidor auto escrito –

Cuestiones relacionadas