elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Comunicaciones
| |-+  Redes
| | |-+  Envio de archivos por sockets
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Envio de archivos por sockets  (Leído 3,049 veces)
programacion19

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Envio de archivos por sockets
« en: 22 Agosto 2016, 18:02 pm »

Hola.

tengo un programa que envia un archivo por sokets, pero quiero que se puedan seleccionar varios archivos para mandar mas de dos archivos, espero alguien me pueda ayudar


// Cliente

import javax.swing.JFileChooser;
import java.net.*;
import java.io.*;
public class ClienteArchivo {
    public static void main(String[] args){
        try{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.printf("Escriba la dirección del servidor:");
            String host = br.readLine();
            System.out.printf("\n\nEscriba el puerto:");
            int pto = Integer.parseInt(br.readLine());
            Socket cl = new Socket(host, pto);
            JFileChooser jf = new JFileChooser();
            int r = jf.showOpenDialog(null);
            if (r==JFileChooser.APPROVE_OPTION){
                File f = jf.getSelectedFile();
                String archivo = f.getAbsolutePath();
                String nombre = f.getName();
                long tam = f.length();
               DataOutputStream dos = new DataOutputStream(cl.getOutputStream());
                DataInputStream dis = new DataInputStream(new FileInputStream(archivo));
                dos.writeUTF(nombre);
                dos.flush();
                dos.writeLong(tam);
                dos.flush();
                byte[] b = new byte[1024];
                long enviados = 0;
                int porcentaje, n;
                while (enviados < tam){
                    n = dis.read(b);
                    dos.write(b,0,n);
                    dos.flush();
                    enviados = enviados+n;
                    porcentaje = (int)(enviados*100/tam);
                    System.out.print("Enviado: "+porcentaje+"%\r");
                }//While
                System.out.print("\n\nArchivo enviado");
                dos.close();
                dis.close();
                cl.close();
            }//if
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}


//Servidor

import java.net.*;
import java.io.*;

public class ServidorArchivo {
    public static void main(String[] args){
        try{
            ServerSocket s = new ServerSocket(8000);
            for(;;){
                Socket cl = s.accept();
                System.out.println("Conexión establecida desde"+cl.getInetAddress()+":"+cl.getPort());
                DataInputStream dis = new DataInputStream(cl.getInputStream());
                byte[] b = new byte[1024];
                String nombre = dis.readUTF();
                System.out.println("Recibimos el archivo:"+nombre);
                long tam = dis.readLong();
                DataOutputStream dos = new DataOutputStream(new FileOutputStream(nombre));
            long recibidos=0;
                int n, porcentaje;
                while(recibidos < tam){
                    n = dis.read(b);
                    dos.write(b,0,n);
                    dos.flush();
                    recibidos = recibidos + n;
                    porcentaje = (int)(recibidos*100/tam);
                    System.out.print("\n\nArchivo recibido.");
                }//While
                dos.close();
                dis.close();
                cl.close();
            }
        }catch(Exception e){
                    e.printStackTrace();
        }//catch
    }
}


Gracias


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Envio de archivos... « 1 2 »
Scripting
nhaalclkiemr 10 6,842 Último mensaje 11 Junio 2007, 22:46 pm
por nhaalclkiemr
Envio de archivos por winsock
Programación Visual Basic
aum 3 1,760 Último mensaje 21 Junio 2008, 16:21 pm
por aum
Envio de archivos con CSocketPlus
Programación Visual Basic
skyline2412 0 1,155 Último mensaje 7 Octubre 2008, 23:52 pm
por skyline2412
Envio de Archivos
Java
ioyola 1 1,669 Último mensaje 30 Mayo 2013, 21:30 pm
por RyogiShiki
[Ayuda] [Envio de paquetes] [Python] ayuda con los raw sockets
Scripting
pelela400 1 2,067 Último mensaje 22 Marzo 2020, 21:58 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines