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

📄 cliente.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 vista.ventanaCliente;/** *clase que pide los archivos desde el servidor. no se implementa en un hilo * ya que el cliente solicita simpre los datos y el servidor * le responde inmediatamente. * @author Camilo Andres */public class cliente{    /**constante que dira donde esta el servidor FTP*/    public static final String  IP_SERVER   ="localhost";    /**puerto por donde el servidor recibe conexiones*/    public static final int     PORT        =4500;    //--------------------------------------------------------------------------    //socket que se comunicara con le servidor.    private Socket conexionServer;    /**flujos de E/S de objetos para poder enviar y recibir cualquier tipo de info.*/    private ObjectOutputStream salidaDatos;    private ObjectInputStream entradaDatos;       //bandera para controlar la existencia del hilo.    private boolean finConexion;    private  String IP;    //--------------------------------------------------------------------------   /**    * el constructor se conecta al servidor por medio de la IP y el puerto del mismo, a su vez que    * crea los flujo de E/S.    * @param IP del servidor    * @param PORT puerto por donde el servidor escucha.    * @throws java.net.UnknownHostException    * @throws java.io.IOException    */    public cliente(String IP,int PORT)  throws UnknownHostException, IOException    {        super();                //se conecta al servidor suminstrando la IP y el Puerto        conexionServer=new Socket(IP, PORT);        finConexion=false;        //se crean los flujos de E/S para comunicarse con el servidor.        salidaDatos=  new ObjectOutputStream(conexionServer.getOutputStream());        entradaDatos= new ObjectInputStream (conexionServer.getInputStream());        this.IP=IP;    }    /**     * metodo para enviar un mensaje al servidor     * @param msj     */    private void enviarMsjServidor(Object msj) throws IOException    {        salidaDatos.writeObject(msj);        salidaDatos.flush();        salidaDatos.reset();    }     /**     * metodo para desconectarse segura y correctamente del servidor     * siguiendo el protocolo de desconexion.     * @throws java.io.IOException     * @throws java.lang.ClassNotFoundException     * @throws java.lang.Exception     */    public void desconectar() throws IOException, ClassNotFoundException, Exception    {        enviarMsjServidor("DESCONECTAR");                    finConexion=true;            conexionServer.close();          }    /**     * metodo para recibir un archivo despues de haberlo pedido al servidor.     * como la descarga se implementa en un hilo, sepueden descargar varios     * archivos al tiempo.     * @param nombreArchivo nombre del archivo a descargar.     * @throws java.io.IOException     * @throws java.lang.ClassNotFoundException     */    public void recibirArchivo(String nombreArchivo) throws IOException, ClassNotFoundException    {        //siguiendo el protocolo de aplicacion hay que enviar          //la palabra BAJAR_ARCHIVO y luego el nombre del archivo        enviarMsjServidor("BAJAR_ARCHIVO");        enviarMsjServidor(nombreArchivo);        //el servidor envia la cliente el puerto por donde se tiene que conectar        //para bajar el archivo.        int port=(Integer)entradaDatos.readObject();        //se conecta a la IP del servidor por el puerto que le indico.        Socket conRX=new Socket(IP,port);        //Crea un objeto que recibe el archivo.        hiloRXFileCliente hRx=new hiloRXFileCliente(conRX, nombreArchivo);        //crea un hilo con Thread que recibe una instancia de una clase Runnable.       Thread hilo=new Thread(hRx);       //lanza el hilo.       hilo.start();                            }    /**     * metodo para pedir la lista de archivos al servidor.     * @return     * @throws java.io.IOException     * @throws java.lang.ClassNotFoundException     */    public String[] listaArchivosServidor() throws IOException, ClassNotFoundException    {        //segun el protocolo de aplicacion se debe enviar        //la palabra LISTA_ARCHIVOS al servidor para solicitar         //la lista de archivos que se pueden descargar.        enviarMsjServidor("LISTA_ARCHIVOS");        entradaDatos.readObject();        //lee la lista de archivos.        String[] lista=(String[])entradaDatos.readObject();        return lista;    }    /**     * metodo para recibir un archivo despues de haberlo pedido al servidor.     * @param nombreArchivo     * @throws java.io.IOException     * @throws java.lang.ClassNotFoundException     */    public void enviarArchivo(File Archivo) throws IOException, ClassNotFoundException    {        //siguiendo el protocolo de aplicacion hay que enviar        //la palabra BAJAR_ARCHIVO y luego el nombre del archivo        enviarMsjServidor("SUBIR_ARCHIVO");        enviarMsjServidor(Archivo.getName());        //el servidor envia la cliente el puerto por donde se tiene que conectar        //para subir el archivo.        int port=(Integer)entradaDatos.readObject();        //se conecta al servidor por el puerto que le indico y la IP del mismo..        Socket conTX=new Socket(IP,port);        //Crea un objeto que transmite el archivo.        hiloTxFileCliente hTx=new hiloTxFileCliente(conTX, Archivo.getAbsolutePath());        //crea un hilo con Thread que recibe una instancia de una clase Runnable.       Thread hilo=new Thread(hTx);       //lanza el hilo.       hilo.start();    }}

⌨️ 快捷键说明

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