NetworkStream.Read Methode

Definition

Überlädt

Name Beschreibung
Read(Span<Byte>)

Liest Daten aus dem NetworkStream Speicher und speichert sie in einem Bereich von Bytes im Arbeitsspeicher.

Read(Byte[], Int32, Int32)

Liest Daten aus dem NetworkStream Array und speichert sie in einem Bytearray.

Read(Span<Byte>)

Liest Daten aus dem NetworkStream Speicher und speichert sie in einem Bereich von Bytes im Arbeitsspeicher.

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

Parameter

buffer
Span<Byte>

Ein Speicherbereich zum Speichern von Daten aus dem NetworkStream.

Gibt zurück

Die Gesamtanzahl der in den Puffer gelesenen Bytes zwischen Null (0) und der Länge des Puffers. Die Methode gibt null (0) nur zurück, wenn null Bytes angefordert wurden oder wenn keine weiteren Bytes verfügbar sind, da der Peersocket ein ordnungsgemäßes Herunterfahren ausgeführt hat.

Ausnahmen

Das NetworkStream Lesen wird nicht unterstützt.

Fehler beim Zugriff auf den Socket.

-oder-

Fehler beim Lesen aus dem Netzwerk.

Das NetworkStream ist geschlossen.

Hinweise

Diese Methode liest so viele Daten wie im Parameter verfügbar buffer und gibt die Anzahl der bytes erfolgreich gelesen zurück.

Note

Überprüfen Sie, ob dies NetworkStream durch Aufrufen der CanRead Eigenschaft lesbar ist. Wenn Sie versuchen, aus einem NetworkStream nicht lesbaren Text zu lesen, erhalten Sie eine InvalidOperationException.

Note

Wenn Sie eine IOExceptionEigenschaft erhalten, überprüfen Sie die InnerException Eigenschaft, um zu ermitteln, ob sie durch eine SocketException. Wenn ja, verwenden Sie die ErrorCode-Eigenschaft, um den spezifischen Fehlercode abzurufen, und verweisen Sie auf den Fehlercode Windows Sockets Version 2 API, um eine detaillierte Beschreibung des Fehlers zu erhalten.

Gilt für:

Read(Byte[], Int32, Int32)

Liest Daten aus dem NetworkStream Array und speichert sie in einem Bytearray.

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

Parameter

buffer
Byte[]

Ein Array vom Typ Byte , das der Speicherort im Speicher zum Speichern von Daten ist, die aus der Datei NetworkStreamgelesen werden.

offset
Int32

Der Speicherort buffer , an dem die Daten gespeichert werden sollen.

size
Int32

Die Anzahl der Bytes, aus der NetworkStreamgelesen werden soll.

Gibt zurück

Die Gesamtanzahl der in den Puffer gelesenen Bytes zwischen Null (0) und der angeforderten Anzahl. Die Methode gibt null (0) nur zurück, wenn null Bytes angefordert wurden oder wenn keine weiteren Bytes verfügbar sind, da der Peersocket ein ordnungsgemäßes Herunterfahren ausgeführt hat.

Ausnahmen

buffer ist null.

offset ist kleiner als 0.

-oder-

offset ist größer als die Länge von buffer.

-oder-

size ist kleiner als 0.

-oder-

size ist größer als die Länge des Minuszeichens bufferoffset.

Das NetworkStream Lesen wird nicht unterstützt.

Fehler beim Zugriff auf den Socket.

-oder-

Fehler beim Lesen aus dem Netzwerk.

Das NetworkStream ist geschlossen.

Beispiele

Im folgenden Codebeispiel werden Daten aus dem NetworkStream Puffer gelesen. Wenn Daten verfügbar sind, wird das Lesen bis zum Ende des Datenstroms fortgesetzt, wobei die empfangenen Daten an eine 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);

Hinweise

Diese Methode liest Daten in buffer und gibt die Anzahl der Bytes zurück, die erfolgreich gelesen wurden. Der Read Vorgang liest so viele Daten wie verfügbar, bis zur Anzahl der by den count Parameter angegebenen Bytes.

Note

Überprüfen Sie, ob dies NetworkStream durch Aufrufen der CanRead Eigenschaft lesbar ist. Wenn Sie versuchen, aus einem NetworkStream nicht lesbaren Text zu lesen, erhalten Sie eine InvalidOperationException.

Note

Wenn Sie eine IOExceptionEigenschaft erhalten, überprüfen Sie die InnerException Eigenschaft, um zu ermitteln, ob sie durch eine SocketException. Wenn ja, verwenden Sie die ErrorCode-Eigenschaft, um den spezifischen Fehlercode abzurufen, und verweisen Sie auf den Fehlercode Windows Sockets Version 2 API, um eine detaillierte Beschreibung des Fehlers zu erhalten.

Weitere Informationen

Gilt für: