Como su nombre lo dice, nos sirve como un servidor local para los archivos exe.
funcional donde sea que se ejecute una maquina virtual de java XD
Es como HFS solo que mini.

Cabe destacar que si recibimos una peticion asi [Enlace externo eliminado para invitados]
entonces donde ejecutemos el servidor debera existir el archivo server.exe en el mismo path. Ejemplo que el servidor se ejecute en c:\carpeta\
entonces en c:\carpeta debe existir el archivo server.exe.

Código: Seleccionar todo




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

/**
 *
 * @author AdWiNd
 */
public class EnviaPeticion extends Thread {

    private Socket socket;

    public EnviaPeticion(Socket sok) {
        socket = sok;
    }

    @Override
    public void run() {
        try {
   //Creamos una instancia para leer la peticion
            BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
            
            String file=br.readLine();
            //AQUI Obtenemos el nombre del archivo ya que normalmente viene asi GET /ARCHIVO HTTP...
            String NombreArchivo=file.substring(file.indexOf("/")+1, file.indexOf("HTTP")-1);
            System.out.println(NombreArchivo);
            
            
            
            //Obtenemos el flujo de salida donde vamos a enviar el archivo
            OutputStream sl=socket.getOutputStream();
            
        
            //Leeemos el archivo para enviarlo
           FileInputStream in=new FileInputStream(NombreArchivo);
           int i; 
           byte BUF[]=new byte[1024]; 
           //lo vamos enviando de kb x kb
           while((i=in.read(BUF))>-1){
           sl.write(BUF, 0, i);
           }
            //cerramos tod
            sl.close();
            in.close();
            socket.close();
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
       
       
        System.out.println("Sali");  
    }
}


Código: Seleccionar todo




import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Servidor extends Thread{
    private ServerSocket server;
    private Socket socket;
    private boolean CONECTADO;
    public Servidor(int puerto){
        try {
            server=new ServerSocket(puerto);
            CONECTADO=true;
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }
    
    
    @Override
    public void run(){
        
        do{
            try {
                socket=server.accept();
//Creamos una clase enviapeticion que a la vez extiende de la clase Thread y como parametro recibe el socket y lo iniciamos para que sea MultiThread.
                EnviaPeticion env=new EnviaPeticion(socket);
                env.start();
                
            } catch (IOException ex) {
                System.out.println(ex.getMessage());
            }
            
            
        }while(CONECTADO);
        
        
        
    
    }
    public static void main(String[] args) {
        Servidor server =new Servidor(80);
        server.start();
    }
}


Este servidor es multiThread puede recibir muchas peticiones de archivos y atenderlos todos.

Responder

Volver a “Fuentes”