NetworkStream.Read Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| Read(Span<Byte>) |
Legge i dati dall'oggetto NetworkStream e li archivia in un intervallo di byte in memoria. |
| Read(Byte[], Int32, Int32) |
Legge i dati dall'oggetto NetworkStream e li archivia in una matrice di byte. |
Read(Span<Byte>)
Legge i dati dall'oggetto NetworkStream e li archivia in un intervallo di byte in memoria.
public:
override int Read(Span<System::Byte> buffer);
public override int Read(Span<byte> buffer);
override this.Read : Span<byte> -> int
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer
Parametri
Area di memoria in cui archiviare i dati letti da NetworkStream.
Valori restituiti
Numero totale di byte letti nel buffer, compreso tra zero (0) e la lunghezza del buffer. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
Non NetworkStream supporta la lettura.
Si è verificato un errore durante l'accesso al socket.
oppure
Si è verificato un errore durante la lettura dalla rete.
L'oggetto NetworkStream è chiuso.
Commenti
Questo metodo legge tutti i dati disponibili nel buffer parametro e restituisce il numero di byte letti correttamente.
Note
Controllare se è NetworkStream leggibile chiamando la CanRead proprietà . Se si tenta di leggere da un oggetto NetworkStream che non è leggibile, si otterrà un oggetto InvalidOperationException.
Note
Se si riceve un oggetto IOException, controllare la InnerException proprietà per determinare se è stata causata da un oggetto SocketException. In tal caso, usare la proprietà ErrorCode per ottenere il codice di errore specifico e fare riferimento al codice di errore api Windows Sockets versione 2 documentazione per una descrizione dettagliata dell'errore.
Si applica a
Read(Byte[], Int32, Int32)
Legge i dati dall'oggetto NetworkStream e li archivia in una matrice di byte.
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public override int Read(byte[] buffer, int offset, int size);
override this.Read : byte[] * int * int -> int
abstract member Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, size As Integer) As Integer
Parametri
- buffer
- Byte[]
Matrice di tipo Byte che rappresenta la posizione in memoria per archiviare i dati letti da NetworkStream.
- offset
- Int32
Posizione in buffer in cui iniziare a archiviare i dati.
- size
- Int32
Numero di byte da leggere da NetworkStream.
Valori restituiti
Numero totale di byte letti nel buffer tra zero (0) e il conteggio richiesto. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
buffer è null.
offset è minore di 0.
oppure
offset è maggiore della lunghezza di buffer.
oppure
size è minore di 0.
oppure
size è maggiore della lunghezza di buffer meno offset.
Non NetworkStream supporta la lettura.
Si è verificato un errore durante l'accesso al socket.
oppure
Si è verificato un errore durante la lettura dalla rete.
L'oggetto NetworkStream è chiuso.
Esempio
L'esempio di codice seguente legge i dati da NetworkStream in un buffer. Se i dati sono disponibili, continua la lettura fino al raggiungimento della fine del flusso, aggiungendo i dati ricevuti a un oggetto StringBuilder.
byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
// Read all the data until the end of stream has been reached.
// The incoming message may be larger than the buffer size.
while (numberOfBytesRead > 0)
{
myCompleteMessage.Append(Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
}
// Print out the received message to the console.
Console.WriteLine("You received the following message : " + myCompleteMessage);
Commenti
Questo metodo legge i dati in buffer e restituisce il numero di byte letti correttamente. L'operazione Read legge la quantità di dati disponibile, fino al numero di byte specificato dal count parametro .
Note
Controllare se è NetworkStream leggibile chiamando la CanRead proprietà . Se si tenta di leggere da un oggetto NetworkStream che non è leggibile, si otterrà un oggetto InvalidOperationException.
Note
Se si riceve un oggetto IOException, controllare la InnerException proprietà per determinare se è stata causata da un oggetto SocketException. In tal caso, usare la proprietà ErrorCode per ottenere il codice di errore specifico e fare riferimento al codice di errore api Windows Sockets versione 2 documentazione per una descrizione dettagliata dell'errore.