Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Invio di byte come stream tcp

    In un'applicazione in cui un server scarica verso il client delle immagini sotto forma di sequenza di byte uso la riga
    while((read= in.read())!= -1) {
    ....
    }
    per catturare i byte e tratarli come chiesto. Il problema è che il flusso di byte non è costante nel tempo. Nei momenti infatti in cui non arriva nulla dal server il ciclo while, trovando un valore = -1 si interrompe ed esce.
    Come posso fare per fare in modo che
    read= in.read()
    si "blocchi" finquando non arrivano byte validi?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Manca il linguaggio... ma se fosse Java non dovrebbe comportarsi così: la chiamata a []read()[/b] dovrebbe essere una chiamata bloccante. Almeno, in classi come ObjectInputStream, la chiamata a readObject() è bloccante: in questo caso, quindi, potresti passare l'intero array come oggetto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Mi scuso per non aver segnalato che si tratta di Java.
    Come funzionerebbe con readObject()?
    Il mio problema è che il server scarica più array e tra un array e l'altro potrebbero passare alcuni secondi. read() mi restituisce subito -1 se non arriva nulla dal server, io invece voglio che semplicemente il thread aspetti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.