⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hilorxfileservidor.java

📁 Example FTP server client/server
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package controlador;import java.io.*;import java.net.*;import java.util.logging.Level;import java.util.logging.Logger;/** *clase para recibir un archivo desde el cliente. * se implementa en un hilo para recibir * @author Camilo Andres */public class hiloRxFileServidor extends Thread{     private Socket conTxFile;    private String rutaArchivo;    private ObjectOutputStream salidaDatos;    private ObjectInputStream entradaDatos;    public hiloRxFileServidor(Socket conTxFile, String rutaArchivo) throws IOException    {        this.conTxFile = conTxFile;        this.rutaArchivo = rutaArchivo;        salidaDatos=new ObjectOutputStream(conTxFile.getOutputStream());        entradaDatos=new ObjectInputStream(conTxFile.getInputStream());        start();    }    public void run()    {         //flujo de entrada de los datos del archivo, se usa para leer el archivo.        BufferedOutputStream fout = null;        try {            salidaDatos.writeObject("LISTO");            long sizeFile = (Long) entradaDatos.readObject();            int TAM_BLOQUE = (Integer) entradaDatos.readObject();            System.out.println("T=" + sizeFile + "  :N=" + TAM_BLOQUE);            File f = new File("files\\" + rutaArchivo);            fout = new BufferedOutputStream(new FileOutputStream(f));            //se va a enviar el archivo en bloques de 100 bytes.            //se calcula cuantos bloque hay,            int numBloques = (int) (sizeFile/TAM_BLOQUE);            //los byte que sobren que no alcancen a formar un bloque.            int tamResto = (int) (sizeFile%TAM_BLOQUE);            //lee los numBloques bloques del archivo y los envia.            long bytesRecibidos=0;            for (int i = 0; i < numBloques; i++) {                //Almacena el arreglo de TAM_BLOQUE los bytes en el archivo                byte[] datos = (byte[]) entradaDatos.readObject();                //Almacena el arreglo de TAM_BLOQUE los bytes en el archivo                fout.write(datos);                bytesRecibidos+=TAM_BLOQUE;                System.out.println(i+"-"+bytesRecibidos+" de "+ sizeFile);            }            //hay que recibir el sobrante, escribirlo en el  archivo            byte[] datos = (byte[]) entradaDatos.readObject();            fout.write(datos);            fout.close();        } catch (IOException ex) {            Logger.getLogger(hiloRxFileServidor.class.getName()).log(Level.SEVERE, null, ex);        } catch (ClassNotFoundException ex) {            Logger.getLogger(hiloRxFileServidor.class.getName()).log(Level.SEVERE, null, ex);        }        finally        {            try {                fout.close();            } catch (IOException ex) {                Logger.getLogger(hiloRxFileServidor.class.getName()).log(Level.SEVERE, null, ex);            }        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -