NetworkStream.Read Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overloads
| Name | Description |
|---|---|
| Read(Span<Byte>) |
Hiermee worden gegevens uit de NetworkStream gegevens gelezen en opgeslagen in een groot aantal bytes in het geheugen. |
| Read(Byte[], Int32, Int32) |
Hiermee worden gegevens uit de NetworkStream gegevens gelezen en opgeslagen in een bytematrix. |
Read(Span<Byte>)
Hiermee worden gegevens uit de NetworkStream gegevens gelezen en opgeslagen in een groot aantal bytes in het geheugen.
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
Parameters
Een geheugengebied voor het opslaan van gegevens die zijn gelezen uit de NetworkStream.
Retouren
Het totale aantal bytes dat in de buffer is gelezen, tussen nul (0) en de lengte van de buffer. De methode retourneert alleen nul (0) als er nul bytes zijn aangevraagd of als er geen bytes meer beschikbaar zijn omdat de peersocket een probleemloos afsluiten heeft uitgevoerd.
Uitzonderingen
Het NetworkStream biedt geen ondersteuning voor lezen.
Er is een fout opgetreden bij het openen van de socket.
– of –
Er is een fout opgetreden bij het lezen van het netwerk.
De NetworkStream is gesloten.
Opmerkingen
Deze methode leest zoveel gegevens als beschikbaar is in de buffer parameter en retourneert het aantal bytes dat is gelezen.
Note
Controleer of de NetworkStream eigenschap kan worden gelezen door de CanRead eigenschap aan te roepen. Als u probeert te lezen van een NetworkStream die niet leesbaar is, krijgt u een InvalidOperationException.
Note
Als u een IOException, controleert u de InnerException eigenschap om te bepalen of deze is veroorzaakt door een SocketException. Als dit het probleem is, gebruikt u de eigenschap ErrorCode om de specifieke foutcode te verkrijgen en raadpleegt u de Windows Sockets versie 2 API-foutcode voor een gedetailleerde beschrijving van de fout.
Van toepassing op
Read(Byte[], Int32, Int32)
Hiermee worden gegevens uit de NetworkStream gegevens gelezen en opgeslagen in een bytematrix.
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
Parameters
- buffer
- Byte[]
Een matrix van het type Byte dat de locatie in het geheugen is voor het opslaan van gegevens die zijn gelezen uit de NetworkStream.
- offset
- Int32
De locatie waar buffer de gegevens worden opgeslagen.
- size
- Int32
Het aantal bytes dat moet worden gelezen uit de NetworkStream.
Retouren
Het totale aantal bytes dat in de buffer tussen nul (0) en het aangevraagde aantal is gelezen. De methode retourneert alleen nul (0) als er nul bytes zijn aangevraagd of als er geen bytes meer beschikbaar zijn omdat de peersocket een probleemloos afsluiten heeft uitgevoerd.
Uitzonderingen
buffer is null.
offset is kleiner dan 0.
– of –
offset is groter dan de lengte van buffer.
– of –
size is kleiner dan 0.
– of –
size is groter dan de lengte van buffer min offset.
Het NetworkStream biedt geen ondersteuning voor lezen.
Er is een fout opgetreden bij het openen van de socket.
– of –
Er is een fout opgetreden bij het lezen van het netwerk.
De NetworkStream is gesloten.
Voorbeelden
In het volgende codevoorbeeld worden gegevens uit de NetworkStream buffer gelezen. Als er gegevens beschikbaar zijn, wordt verder gelezen totdat het einde van de stream is bereikt, waarbij de ontvangen gegevens worden toegevoegd aan een 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);
Opmerkingen
Deze methode leest gegevens in buffer en retourneert het aantal bytes dat is gelezen. De Read bewerking leest zoveel gegevens als beschikbaar is, tot het aantal bytes dat is opgegeven door de count parameter.
Note
Controleer of de NetworkStream eigenschap kan worden gelezen door de CanRead eigenschap aan te roepen. Als u probeert te lezen van een NetworkStream die niet leesbaar is, krijgt u een InvalidOperationException.
Note
Als u een IOException, controleert u de InnerException eigenschap om te bepalen of deze is veroorzaakt door een SocketException. Als dit het probleem is, gebruikt u de eigenschap ErrorCode om de specifieke foutcode te verkrijgen en raadpleegt u de Windows Sockets versie 2 API-foutcode voor een gedetailleerde beschrijving van de fout.