NetworkStream.Read Metodo

Definizione

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

buffer
Span<Byte>

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.

Vedi anche

Si applica a