Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-09-2009, 10:00   #1
cagnaluia
Senior Member
 
L'Avatar di cagnaluia
 
Iscritto dal: Oct 2003
Città: TV
Messaggi: 10836
[JAVA] - comunicazione http - migliorare il buffer

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 );
        }
    }
}
__________________
cagnaluia
MTB|DH|Running|Diving
Eos1DX|16-35f4Lis|35f1.4L|100f2|300F4LIS
cagnaluia è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 17:23   #2
TellaspallaBob
Member
 
L'Avatar di TellaspallaBob
 
Iscritto dal: Nov 2002
Messaggi: 262
Intendi una cosa tipo questa??

Codice:
public void copyBuffer(InputStream iStream, OutputStream outStream, int bufferSize) throws IOException
	{
                // Allochi il buffer
		byte [] buffer = new byte[bufferSize];

                // Usata per capire quanti byte sono stati letti dallo stream
		int bytesRead = 0; 
		
                // Cicli fino alla fine dello stream
                // Come vedi nella var bytesRead ottieni il numero di byte letti dallo stream
		while( (bytesRead = iStream.read(buffer)) >0 )
		{
                        // Scrivi il buffer in base al numero di bytes letti
			outStream.write(buffer, 0, bytesRead);
                        
                        // Dopo le scritture fare un flush dello stream e' consigliato
			outStream.flush();
		}
	}
TellaspallaBob è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2009, 18:03   #3
cagnaluia
Senior Member
 
L'Avatar di cagnaluia
 
Iscritto dal: Oct 2003
Città: TV
Messaggi: 10836
si, perfetta.
__________________
cagnaluia
MTB|DH|Running|Diving
Eos1DX|16-35f4Lis|35f1.4L|100f2|300F4LIS
cagnaluia è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
La sorpresa di IAA Mobility è Xyt...
Le vetture elettriche Opel GSE: Mokka GS...
Star Wars: Knight of the Old Republic Re...
Scoperta un'enorme rete IPTV da pi&ugrav...
Anche Life is Strange diventerà u...
QSAN presenta la nuova serie XN1 di NAS ...
Abbiamo visto in anteprima nuova Renault...
Come ricaricare i veicoli elettrici sino...
Microsoft annuncia nuovi servizi azienda...
Roborock QV 35S spazza via lo sporco: po...
The Last of Us: arriva il primo Emmy per...
Firefox abbandona Linux a 32 bit: fine d...
Reti mobili italiane: chi vince e chi pe...
God of War: le riprese della serie TV ta...
Volkswagen ID. Cross Concept: design Pur...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v