NetworkStream.Read Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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
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.
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.
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.