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
Read(Span<Byte>) |
Liest Daten aus NetworkStream und speichert sie in eine Bytespanne im Speicher. |
Read(Byte[], Int32, Int32) |
Liest Daten aus NetworkStream und speichert sie in einem Bytearray. |
Read(Span<Byte>)
- Quelle:
- NetworkStream.cs
- Quelle:
- NetworkStream.cs
- Quelle:
- NetworkStream.cs
Liest Daten aus NetworkStream und speichert sie in eine Bytespanne im Speicher.
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, in dem aus NetworkStream gelesene Daten gespeichert werden.
Gibt zurück
Die Anzahl der aus dem NetworkStream gelesenen Bytes.
Ausnahmen
Lesevorgänge werden von NetworkStream nicht unterstützt.
Beim Zugreifen auf den Socket ist ein Fehler aufgetreten.
- oder -
Beim Lesen aus dem Netzwerk tritt ein Fehler auf.
Der NetworkStream ist geschlossen.
Hinweise
Diese Methode liest so viele Daten, wie im buffer
Parameter verfügbar sind, und gibt die Anzahl der bytes zurück, die erfolgreich gelesen wurden.
Hinweis
Überprüfen Sie, ob die NetworkStream lesbar ist, indem Sie die CanRead -Eigenschaft aufrufen. Wenn Sie versuchen, aus einem NetworkStream zu lesen, das nicht lesbar ist, erhalten Sie eine InvalidOperationException.
Hinweis
Wenn Sie eine IOExceptionerhalten, überprüfen Sie die InnerException -Eigenschaft, um zu ermitteln, ob sie durch ein SocketExceptionverursacht wurde. Wenn ja, verwenden Sie die ErrorCode -Eigenschaft, um den spezifischen Fehlercode abzurufen. Eine ausführliche Beschreibung des Fehlers finden Sie in der Dokumentation zum API-Code der Windows Sockets Version 2 .
Gilt für:
Read(Byte[], Int32, Int32)
- Quelle:
- NetworkStream.cs
- Quelle:
- NetworkStream.cs
- Quelle:
- NetworkStream.cs
Liest Daten aus NetworkStream und speichert sie in einem Bytearray.
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
Parameter
- buffer
- Byte[]
Ein Array vom Typ Byte, das dem Speicherort entspricht, an dem aus dem NetworkStream gelesene Daten gespeichert werden.
- offset
- Int32
Die Position im buffer
, an der mit dem Speichern der Daten begonnen werden soll.
- sizecount
- Int32
Die Anzahl der aus dem NetworkStream zu lesenden Bytes.
Gibt zurück
Die Anzahl der aus dem NetworkStream gelesenen Bytes.
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 von buffer
minus offset
.
Lesevorgänge werden von NetworkStream nicht unterstützt.
Beim Zugreifen auf den Socket ist ein Fehler aufgetreten.
- oder -
Beim Lesen aus dem Netzwerk tritt ein Fehler auf.
Der NetworkStream ist geschlossen.
Beispiele
Im folgenden Codebeispiel wird DataAvailable ermittelt, ob Daten zum Lesen verfügbar sind. Wenn Daten verfügbar sind, liest sie aus 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);
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 sind, bis zur Anzahl von Bytes, die durch den size
Parameter angegeben werden.
Hinweis
Überprüfen Sie, ob die NetworkStream lesbar ist, indem Sie die CanRead -Eigenschaft aufrufen. Wenn Sie versuchen, aus einem NetworkStream zu lesen, das nicht lesbar ist, erhalten Sie eine InvalidOperationException.
Hinweis
Wenn Sie eine IOExceptionerhalten, überprüfen Sie die InnerException -Eigenschaft, um zu ermitteln, ob sie durch ein SocketExceptionverursacht wurde. Wenn ja, verwenden Sie die ErrorCode -Eigenschaft, um den spezifischen Fehlercode abzurufen. Eine ausführliche Beschreibung des Fehlers finden Sie in der Dokumentation zum API-Code der Windows Sockets Version 2 .