Condividi tramite


NetworkStream.Read Metodo

Definizione

Overload

Read(Span<Byte>)

Legge i dati da NetworkStream e li archivia in un intervallo di byte in memoria.

Read(Byte[], Int32, Int32)

Legge i dati da NetworkStream e li archivia in una matrice di byte.

Read(Span<Byte>)

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

Legge i dati da 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.

Restituisce

Numero di byte letti dalla classe NetworkStream.

Eccezioni

L'oggetto NetworkStream non supporta la lettura.

Si è verificato un errore durante l'accesso al socket.

-oppure-

Si è verificato un errore durante la lettura dalla rete.

Commenti

Questo metodo legge i dati disponibili nel buffer parametro e restituisce il numero di byte letti correttamente.

Nota

Verificare se l'oggetto NetworkStream è leggibile chiamando la CanRead proprietà. Se si tenta di leggere da un NetworkStream oggetto che non è leggibile, si otterrà un InvalidOperationExceptionoggetto .

Nota

Se si riceve un IOExceptionoggetto , controllare la InnerException proprietà per determinare se è stata causata da un SocketExceptionoggetto . In tal caso, usare la ErrorCode proprietà per ottenere il codice di errore specifico e fare riferimento alla documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.

Si applica a

Read(Byte[], Int32, Int32)

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

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

Parametri

buffer
Byte[]

Matrice di tipo Byte che corrisponde alla posizione in memoria in cui archiviare i dati dalla classe NetworkStream.

offset
Int32

Posizione in buffer in cui avviare l'archiviazione dei dati.

sizecount
Int32

Numero di byte da leggere dalla classe NetworkStream.

Restituisce

Numero di byte letti dalla classe NetworkStream.

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.

L'oggetto NetworkStream non supporta la lettura.

Si è verificato un errore durante l'accesso al socket.

-oppure-

Si è verificato un errore durante la lettura dalla rete.

Esempio

Nell'esempio di codice seguente viene DataAvailable usato per determinare se i dati sono disponibili per la lettura. Se i dati sono disponibili, legge dall'oggetto NetworkStream.

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 specificati dal size parametro.

Nota

Verificare se l'oggetto NetworkStream è leggibile chiamando la CanRead proprietà. Se si tenta di leggere da un NetworkStream oggetto che non è leggibile, si otterrà un InvalidOperationExceptionoggetto .

Nota

Se si riceve un IOExceptionoggetto , controllare la InnerException proprietà per determinare se è stata causata da un SocketExceptionoggetto . In tal caso, usare la ErrorCode proprietà per ottenere il codice di errore specifico e fare riferimento alla documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.

Vedi anche

Si applica a