Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-06-2005, 15:26   #1
panella.e
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 570
[JAVA]Leggere da un socket

Devo leggere da un socket la risposta di una richiesta di una pagina ad un webServer.
Dopo aver aperto la connessione faccio partire 2 thread: in uno faccio la richiesta della pagina al web server, mentre l'altro lo faccio partire subito, in modo da poter leggere la risposta non appena il webserver me la manda.
Per leggere dal socket uso BufferedInputStream, questo è il codice:
Codice:
BufferedInputStream inWeb = new BufferedInputStream(webSocket.getInputStream());
OutputStream outBrowser = browserSocket.getOutputStream();
//inWeb legge dal socket del webserver
//outBrowser restituisce la pagina appena ricevuta al browser che ne ha fatto la richiesta
int i;
byte[] byteBuf = new byte[1024];
while(( i = inWeb.read(byteBuf, 0, 1024) != -1)
{
    outBrowser.write(byteBuf, 0, i);
    outBrowser.flush();
}
Naturalmente questo thread parte subito, anche prima che io invii la richiesta al webserver, tanto il metodo read() è bloccante e quindi rimane in attesa finchè non ci sono dati da leggere.

Il problema è che se ad esempio l'oggetto che sto leggendo è grande 4000 byte, la maggior parte delle volte ne riesco a leggere sempre un numero diverso e comunque inferiore a quanto dovrebbe essere, praticamente termina prima la lettura, ma senza dare nessun errore o eccezione, semplicemente, anche se controllo con il metodo int available() (che restituisce il numero di byte che è possibile leggere), per lui l'oggetto è più piccolo di quanto è in
realtà. La stranezza è che questo comportamento anomalo ce l'ho solo in fase
di runtime, mentre se faccio un debug e inserisco un breakpoint immediantamente prima la lettura, allora adesso vede chiaramente che la
grandezza dei dati da leggere è 4000 e prosegue correttamente. Questo
problema si verifica in continuazione, ho anche provato ad usare altre
classi quali InputStream e DataInputStream ma mi da lo stesso problema. Non
riesco a capire come mai si comporta così?
panella.e è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Il più comprato dagli appassionat...
dreame L40 Ultra 11.000Pa e lavaggio con...
Sembra un PC del 1995, ma monta una RTX ...
Giochi Xbox a 80 dollari? Microsoft ci r...
Trump voleva smembrare NVIDIA: 'Poi ho c...
Lisa Su spiega perché AMD pagher&...
La cometa interstellare 3I/ATLAS potrebb...
Un triste giorno per l'industria videolu...
Il tuo mouse ti spia? La suite di gestio...
Proton presenta Lumo: l'assistente AI co...
Samsung Galaxy S26 Edge: più auto...
Escobar Inc.: una frode che porta il mar...
Apple e la smart home in arrivo? Nuovo H...
Anche Alfa Romeo lancia il suo incentivo...
Un braccialetto che ascolta e registra o...
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: 07:15.


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