Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-06-2005, 16: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


DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
DEEBOT T50 Max Pro Gen2 e X2 Omni ai min...
Autoflight mostra il primo vertiporto ga...
TCL QD-Mini LED e QLED da 65'' crollano ...
Black Friday portatili gaming: Acer Nitr...
Nuova rimodulazione per WindTre: dal 10 ...
Plex ti farà pagare per lo stream...
Adesso è ufficiale: in UK EV e plug-in p...
Apple di nuovo sotto accusa: nuova causa...
Usi Windows con più monitor? Con ...
UE, stretta sui social: la proposta per ...
Stranger Things 5 fa il botto e manda in...
GPU in ogni dove, anche nella memoria: i...
ASUS ExpertBook PM3 è più ...
AIR SNES: le sneakers Nike AIR MAX 90 ch...
Black Friday Amazon: i migliori disposit...
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: 15:46.


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