import java.net.Socket;
import java.io.OutputStream;
import java.io.IOException;
import java.util.Arrays;
public class HiloServidor implements Runnable {
     private Socket laConexion;
     public final static int CAPACIDAD=1024*1024;
     public HiloServidor(Socket conexion) { laConexion=conexion;}
     private void servirHilo(Socket conexion) throws IOException {   
       OutputStream laSalida = conexion.getOutputStream();//obtener flujo escritura
       int dato = 65;
       byte [] arreglo = new byte[CAPACIDAD];
       Arrays.fill(arreglo,(byte)dato);
       int escritos = 0, offset=0;
       do {
          laSalida.write(arreglo,offset,1024);//escribir 1024 bytes
          laSalida.flush(); //vaciar el stream, para que se escriba al socket
          offset+=1024;
       } while (offset<CAPACIDAD );
       System.out.println("Procesando a cliente "+conexion.getInetAddress());
       laSalida.close();
       conexion.close();
    }
    public void run() {
        try {
          this.servirHilo(laConexion);
         } catch (IOException ex) {
            System.err.println("Error en thread "+ this + " "+ex.getMessage());
            try { this.laConexion.close(); } catch (IOException e) {}
         }
    }

}