Sto utilizzando un BinaryReader su un NetworkStream per leggere i dati su una rete. Questo ha funzionato molto bene per me, ma voglio capire cosa succede dietro le quinte, quindi ho dato un'occhiata alla documentazione di BinaryReader e l'ho trovato estremamente scarso.Cosa fa BinaryReader se i byte che sto leggendo non sono ancora presenti?
mia domanda è questa: che cosa fare se BinaryReader.ReadBytes(bufferSize)
bufferSize
byte non sono presenti sul flusso di rete quando chiamo ReadBytes
?
Nella mia mente ci sono alcune opzioni:
1) legge le byte che sono presenti sul flusso di rete e restituire solo che molti
2) Attendere bufferSize
byte sono presenti sul torrente, poi leggere
3) un'eccezione
presumo l'opzione 2 sta accadendo, dal momento che non ho mai ricevuto alcuna eccezione e tutti i miei dati ricevuto insieme, non a pezzi. Tuttavia, mi piacerebbe sapere con certezza cosa sta succedendo. Se qualcuno potesse illuminarmi, sarei grato.
Blocca e garantisce di ottenere il numero di byte richiesto. Ottieni meno se il flusso si chiude e tu li hai letti tutti. –