亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hilocliente.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.ServerSocket;import java.net.Socket;/** *Clase que gestionara la comunicacion con el cliente remoto. * se implementa como un hilo para recibir las peticiones * sin intervenir en la ejecucion del servidor. * cada vez que el servidor reciba una conexion creara este hilo * para que atienda al cliente conectado. * @author Camilo Andres */public class hiloCliente extends Thread{    /**contante que indica el tama?o del bloque que se va a transmitir     cuando se envia un archivo.*/    public static final int TAM_BLOQUE=1024;    public static final int PORT_TX=60000;    public static final int PORT_RX=50000;    private Socket conexionCliente;    private servidor miServidor;    /**Flujos de entrada y de salida para comunicarse con el     * Cliente  */    private ObjectOutputStream salidaDatos;    private ObjectInputStream entradaDatos;    //bandera para controlar la existencia del hilo    private boolean finConexion;    //------------------------    private ServerSocket txFiles;    private ServerSocket rxFiles;    //variable estatica que cuenta el numero    //de clientes instanciados.    public static int numClientes=0;    private int puertoTX;//puerto por donde transmite los archivos.    private int puertoRX;//puerto por donde recibe un archivo.    /**     * el constructor recibe el socket y una referencia al servidor.     * @param conexionCliente. aqui se crean los flujos de E/S      * @param miServidor     */    public hiloCliente(Socket conexionCliente,servidor server) throws IOException    {        super();        this.conexionCliente = conexionCliente;        finConexion=false;        this. miServidor=server;        //se crean los flujos de E/S del socket del cliente conectado        //al servidor. se crean de tipo Object para poder enviar y recibir cualquier        //tipo de dato.        salidaDatos=new ObjectOutputStream(conexionCliente.getOutputStream());        entradaDatos=new ObjectInputStream(conexionCliente.getInputStream());        //envia la lista de archivos para que el cliente la visualice al        //conectarse.       // enviarListaArchivos();        puertoTX=PORT_TX+numClientes;        //serverSocket por donde este cliente crea el socket        //para transmitir un archivo.        txFiles=new ServerSocket(puertoTX);                puertoRX=PORT_RX+numClientes;        //serverSocket por donde este cliente crea el socket        //para enviar un archivo.        rxFiles=new ServerSocket(puertoRX);         //cada vez que se instancia un hiloCliente se incrementa el valor de esta variable.        numClientes++;    }/** * por aqui se recibiran las peticiones del cliente. * ya que no se saben cuando ocurren, es necesario hacerlo en un hilo. */    public void run()    {        while(finConexion==false)        {            try            {                    //espera el tipo de mensaje que va a recibir                    //para saber que debe hacer a continuacion.                    String tipoMsj = (String) entradaDatos.readObject();                    //cuando el clietne quiere descargar un                    //archivo del servidor                     if (tipoMsj.equals("BAJAR_ARCHIVO")==true)                    {                        //segun el protocolo, despues de enviar el tipo de mjs                        //debe enviar el nombre del archivo que quiere descargar.                        String nombreArchivo = (String) entradaDatos.readObject();                        //enviarArchivo(nombreArchivo);                        salidaDatos.writeObject(puertoTX);                                                Socket conTX= txFiles.accept();                        hiloTxFileServidor hTx=new hiloTxFileServidor(conTX, nombreArchivo);                        miServidor.agregarEventoServidor("se descargo el archivo "+nombreArchivo+" desde "+conexionCliente.getInetAddress().getCanonicalHostName());                    }                    //cuando el cliente quiere subir un                    //archivo al servidor                    if (tipoMsj.equals("SUBIR_ARCHIVO")==true)                    {                        //segun el protocolo, despues de enviar el tipo de mjs                        //debe enviar el nombre del archivo que quiere subir.                        String nombreArchivo = (String) entradaDatos.readObject();                       //y el puerto por donde debe conectarse el cliente para enviar                        //el archivo.                        salidaDatos.writeObject(puertoRX);                        //despues de enviar el puerto, se espera a que el cliente se conecte                        Socket conRX= rxFiles.accept();                        //creea el hilo que recibe el archivo                        hiloRxFileServidor hRx=new hiloRxFileServidor(conRX, nombreArchivo);                        miServidor.agregarEventoServidor("se subio el archivo "+nombreArchivo+" desde "+conexionCliente.getInetAddress().getCanonicalHostName());                    }                    //cuando el clietne quiere ya se quiere desconectar del servodr                    if (tipoMsj.equals("DESCONECTAR")==true)                    {                        finConexion=true;//termina con el hilo.                        conexionCliente.close();//cierra el socket.                        rxFiles.close();                        txFiles.close();                    }                    //pedir lista de Archivos.                    if (tipoMsj.equals("LISTA_ARCHIVOS")==true)                    {                        //se envia la lista de archivos al cliente.                        enviarListaArchivos();                        //notificacion del evento al servidor.                        miServidor.agregarEventoServidor(conexionCliente.getInetAddress().getCanonicalHostName()+ " solicitud la actualizacion de la lista");                                            }            }            //si hay error de entrada y salida se desconecta la conexion.            //y se acaba el hilo.            catch (IOException ex)            {                            ex.printStackTrace();                            try                            {                                //se envia a traves del servidor una notificacion a la interfaz grafica.                                miServidor.agregarEventoServidor(conexionCliente.getInetAddress().getCanonicalHostName()+ " se desconecto");                               //se cierra la conexion del socket.                                conexionCliente.close();                                //se acaba con el hilo.                                finConexion=true;                            }                            catch (IOException ex1)                            {                                ex1.printStackTrace();                            }            }            catch (ClassNotFoundException ex)            {                             ex.printStackTrace();            }        }            }    /**     * metodo para enviar un mensaje al clietne remoto     * @param msj que se va a enviar. de tipo Object para     * poder enviar cualquier cosa.     */    public void enviarMensajeCliente(Object msj) throws IOException    {        salidaDatos.writeObject(msj);        salidaDatos.flush();        salidaDatos.reset();    }   /**    * metodo para enviar la lista de archivos presentes en el servidor.    * @throws java.io.IOException    */    public void enviarListaArchivos() throws IOException    {        File f=new File("files\\");        //obtiene la lista de archivos presentes en el directorio de archivos.        String[] lista=f.list();        //para cumplir el protocolo de la aplicacion envia        //la cadena LISTA_ARCHIVOS y luego la lista de archivos.        enviarMensajeCliente("LISTA_ARCHIVOS");        enviarMensajeCliente(lista);    }    /**     * metodo que envia un arhivo al cliente. el protocolo de comunicacion     * indica que despues de haber hecho la peticion del archivo, se le     * envie el tama?o del archivo y el tama?o de los bloque que envia.     * @param nombreArchivo     * @throws java.io.FileNotFoundException     * @throws java.io.IOException     */    public void enviarArchivo(String nombreArchivo) throws FileNotFoundException, IOException    {        //archivo que se va a descargar.        File f=new File("src\\files\\"+nombreArchivo);        //flujo de entrada de los datos del archivo, se usa para leer el archivo.        FileInputStream fin=new FileInputStream(f);                long sizeFile=f.length();        //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);        //para cumplir el protocolo, el servidor le envia al         //cliente la palabra RECIBIR_ARCHIVO luego        //el tama?o del archivo y el tama?o del bloque        //que va a enviar para que sepa como reconstruir el archivo.        //enviarMensajeCliente("RECIBIR_ARCHIVO");        enviarMensajeCliente(sizeFile);//tama?o del archivo        enviarMensajeCliente(TAM_BLOQUE);//tama?o del bloques.        //lee los numBloques bloques del archivo y los envia.        for (int i=0;i<numBloques;i++)        {            byte datos[]=new byte[TAM_BLOQUE];            //lee el arreglo de TAM_BLOQUE los bytes del arreglo            fin.read(datos);            //y los envia al cliente que los espera.            enviarMensajeCliente(datos);        }        //hay que enviar el sobrante, leyendolo del archivo         byte datos[]=new byte[tamResto];         fin.read(datos);         //y enviandolo al clietne.         enviarMensajeCliente(datos);         fin.close();    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精选一二三| 国产精品美女久久久久久久久久久| 亚洲综合丁香婷婷六月香| 91蜜桃在线观看| 亚洲人精品午夜| 欧美三级午夜理伦三级中视频| 亚洲综合久久av| 在线播放日韩导航| 久草热8精品视频在线观看| 久久一区二区三区四区| 国产成人免费在线观看不卡| 亚洲欧美在线高清| 欧美视频一区二区在线观看| 人人超碰91尤物精品国产| 日韩欧美精品在线| 成人免费视频免费观看| 亚洲精品中文在线观看| 51精品久久久久久久蜜臀| 国产呦精品一区二区三区网站| 国产精品嫩草影院com| 日本韩国精品在线| 免费人成黄页网站在线一区二区| 精品成人一区二区三区四区| av一二三不卡影片| 午夜久久久久久| 中文字幕电影一区| 欧美丰满嫩嫩电影| 国内精品第一页| 亚洲精品久久久蜜桃| 精品剧情v国产在线观看在线| 成人黄色在线看| 日本不卡高清视频| 亚洲另类在线视频| 精品久久久久香蕉网| 在线视频一区二区三| 国产一区欧美二区| 亚洲h精品动漫在线观看| 亚洲精品一区二区三区蜜桃下载 | 欧美亚一区二区| 寂寞少妇一区二区三区| 亚洲激情校园春色| 国产午夜精品久久久久久免费视| 欧美日韩国产电影| 99在线精品一区二区三区| 激情久久久久久久久久久久久久久久| 亚洲视频中文字幕| 久久精品视频一区二区三区| 欧美顶级少妇做爰| 色老汉av一区二区三区| 成人一区二区三区中文字幕| 日韩中文字幕区一区有砖一区| 综合色中文字幕| 久久久99精品免费观看不卡| 91精品在线免费| 欧美午夜精品一区二区三区| 99久久精品情趣| 国产91色综合久久免费分享| 裸体一区二区三区| 丝袜亚洲另类欧美| 一区二区免费视频| 中文字幕制服丝袜成人av| 欧美激情自拍偷拍| 久久精品免视看| 久久蜜桃av一区精品变态类天堂 | 欧美性生活久久| 成人午夜视频福利| 国产乱码精品一区二区三区av| 欧美aaaaaa午夜精品| 偷窥国产亚洲免费视频| 亚洲地区一二三色| 亚洲成人免费观看| 亚洲国产精品自拍| 亚洲国产你懂的| 亚洲一区二区三区激情| 亚洲小说春色综合另类电影| 亚洲精品水蜜桃| 一区二区三国产精华液| 亚洲图片欧美色图| 日韩二区三区在线观看| 日韩专区在线视频| 琪琪久久久久日韩精品| 久久精品国产亚洲aⅴ| 久久黄色级2电影| 国产在线精品一区在线观看麻豆| 国产在线精品视频| 成人app网站| 色综合久久九月婷婷色综合| 欧美日韩一区视频| 91精品国产美女浴室洗澡无遮挡| 日韩欧美在线不卡| 久久久综合九色合综国产精品| 中文字幕国产一区| 亚洲激情一二三区| 毛片av中文字幕一区二区| 精品一区二区在线视频| 盗摄精品av一区二区三区| 99这里只有久久精品视频| 欧美系列亚洲系列| 欧美成人精品3d动漫h| 国产精品欧美精品| 亚洲国产wwwccc36天堂| 老司机一区二区| 不卡一区二区三区四区| 欧美日韩国产成人在线91| 久久久久久麻豆| 一区二区三区四区精品在线视频| 日日夜夜免费精品| 国产精品66部| 日本成人中文字幕在线视频 | 一区二区成人在线| 日日夜夜精品视频免费| 韩国女主播成人在线观看| 不卡视频在线看| 91精品国产综合久久久久| 久久亚洲综合av| 一区二区在线观看视频在线观看| 午夜精品免费在线观看| 国产91高潮流白浆在线麻豆| 在线日韩av片| 久久久久久久综合日本| 亚洲国产一区视频| 成人午夜精品在线| 884aa四虎影成人精品一区| 久久精子c满五个校花| 亚洲成人动漫精品| 成人一级视频在线观看| 欧美一级艳片视频免费观看| 亚洲色图在线播放| 国内欧美视频一区二区| 欧美日韩在线一区二区| 中文在线一区二区| 毛片av一区二区三区| 日本久久一区二区| 中文字幕不卡一区| 经典一区二区三区| 欧美日韩dvd在线观看| 亚洲视频网在线直播| 国产麻豆精品95视频| 欧美日韩高清不卡| 亚洲色图19p| 丁香婷婷综合色啪| 精品国产一区二区三区四区四| 亚洲午夜视频在线观看| heyzo一本久久综合| 国产亚洲欧美日韩在线一区| 日韩福利视频网| 欧美日韩一级黄| 一级精品视频在线观看宜春院| 国v精品久久久网| 久久久久亚洲蜜桃| 九九精品视频在线看| 在线综合视频播放| 亚洲va国产va欧美va观看| 91女神在线视频| 国产精品国产三级国产aⅴ中文 | 国产剧情一区二区三区| 日韩精品中文字幕一区二区三区 | 岛国精品在线观看| 亚洲精品一区二区在线观看| 蜜臀av一区二区在线免费观看 | 国产一区在线视频| 精品国产91洋老外米糕| 精品一区二区三区在线播放| 欧美成人精品二区三区99精品| 日本91福利区| 精品免费视频一区二区| 裸体在线国模精品偷拍| 欧美v日韩v国产v| 久草热8精品视频在线观看| 精品国产乱子伦一区| 久久se这里有精品| 精品国产免费久久| 国精产品一区一区三区mba视频| 欧美一区二区三区不卡| 麻豆视频观看网址久久| 亚洲精品一区二区三区香蕉| 国产美女av一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 国产成人亚洲综合a∨婷婷 | 亚洲成人免费影院| 欧美一区二区三区成人| 国内精品久久久久影院薰衣草| 国产视频一区二区在线| 不卡av电影在线播放| 亚洲色大成网站www久久九九| 欧美在线视频日韩| 久久99精品一区二区三区 | fc2成人免费人成在线观看播放| 国产精品亲子伦对白| 一本色道综合亚洲| 日本少妇一区二区| 国产网红主播福利一区二区| 99热精品一区二区| 天天操天天干天天综合网| 精品国产一区二区三区久久久蜜月| 国产成人夜色高潮福利影视| 亚洲精品日韩专区silk| 欧美一区二区三区男人的天堂| 国产真实乱子伦精品视频| 自拍偷拍亚洲激情|