Ciao,
un esercizio, che non so da dove cominciare...
Ho questo codice, avviato da un server http e fa certe semplici cose, cioè visualizzare una risorsa.. un file di testo o un immagine.
E' molto grossolano, prende tutta la risorsa e la spedisce al client (il browser).
Vorrei migliorarlo, nel senso che prenda piccole porzioni della risorsa richiesta e la trasferisca a pezzi più piccoli.
ma come?
codice:/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package tinyhttpd; import java.net.*; import java.io.*; import java.util.*; /** * * @author autore */ class tinyhttpdconnection extends Thread { Socket sock; tinyhttpdconnection (Socket s) { sock = s; setPriority(NORM_PRIORITY -1); start(); } public void run() { try { OutputStream out = sock.getOutputStream(); BufferedReader in=new BufferedReader(new InputStreamReader(sock.getInputStream())); String req = in.readLine(); System.out.println( "Request: "+req ); StringTokenizer st = new StringTokenizer( req ); if ( (st.countTokens() >= 2) && st.nextToken().equals("GET") ) { if ( (req = st.nextToken()).startsWith("/") ) req = req.substring( 1 ); if ( req.endsWith("/") || req.equals("") ) req = req + "index.html"; try { FileInputStream fis = new FileInputStream ( req ); byte [] data = new byte [ fis.available() ]; fis.read( data ); out.write( data ); } catch ( FileNotFoundException e ) { new PrintStream( out ).println("404 Not Found"); } } else new PrintStream( out ).println( "400 Bad Request" ); sock.close(); } catch ( IOException e ) { System.out.println( "I/O error " + e ); } } }

Rispondi quotando