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
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
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.
NetworkStream è chiuso.
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.
NetworkStream è chiuso.
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.