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>)

Origine:
NetworkStream.cs
Origine:
NetworkStream.cs
Origine:
NetworkStream.cs
Origine:
NetworkStream.cs
Origine:
NetworkStream.cs

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)

Origine:
NetworkStream.cs
Origine:
NetworkStream.cs
Origine:
NetworkStream.cs
Origine:
NetworkStream.cs
Origine:
NetworkStream.cs

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 count);
public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public override int Read(byte[] buffer, int offset, int count);
public override int Read(byte[] buffer, int offset, int size);
override this.Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
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.

countsize
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