NetworkStream.Read Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
Read(Span<Byte>) |
Odczytuje dane z obiektu NetworkStream i zapisuje je w zakresie bajtów w pamięci. |
Read(Byte[], Int32, Int32) |
Odczytuje dane z obiektu NetworkStream i zapisuje je w tablicy bajtów. |
Read(Span<Byte>)
- Źródło:
- NetworkStream.cs
- Źródło:
- NetworkStream.cs
- Źródło:
- NetworkStream.cs
Odczytuje dane z obiektu NetworkStream i zapisuje je w zakresie bajtów w pamięci.
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
Parametry
Region pamięci do przechowywania danych odczytanych z elementu NetworkStream.
Zwraca
Liczba bajtów odczytanych z elementu NetworkStream.
Wyjątki
Element NetworkStream nie obsługuje odczytywania.
Wystąpił błąd podczas uzyskiwania dostępu do gniazda.
-lub-
Wystąpił błąd odczytu z sieci.
Element NetworkStream jest zamknięty.
Uwagi
Ta metoda odczytuje tyle danych, ile jest dostępnych w parametrze buffer
i zwraca liczbę bajtów pomyślnie odczytanych.
Uwaga
Sprawdź, czy właściwość NetworkStream jest czytelna, wywołując CanRead właściwość . Jeśli spróbujesz odczytać z elementu NetworkStream , który nie jest czytelny, otrzymasz polecenie InvalidOperationException.
Uwaga
Jeśli otrzymasz obiekt IOException, sprawdź InnerException właściwość , aby określić, czy została spowodowana przez SocketExceptionelement . Jeśli tak, użyj ErrorCode właściwości , aby uzyskać określony kod błędu i zapoznaj się z dokumentacją kodu błędu interfejsu API Gniazda systemu Windows w wersji 2 , aby uzyskać szczegółowy opis błędu.
Dotyczy
Read(Byte[], Int32, Int32)
- Źródło:
- NetworkStream.cs
- Źródło:
- NetworkStream.cs
- Źródło:
- NetworkStream.cs
Odczytuje dane z obiektu NetworkStream i zapisuje je w tablicy bajtów.
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
Parametry
- buffer
- Byte[]
Tablica typu Byte , która jest lokalizacją w pamięci do przechowywania danych odczytanych z elementu NetworkStream.
- offset
- Int32
Lokalizacja w pliku , buffer
w ramach która rozpocznie przechowywanie danych.
- sizecount
- Int32
Liczba bajtów do odczytania z elementu NetworkStream.
Zwraca
Liczba bajtów odczytanych z elementu NetworkStream.
Wyjątki
buffer
to null
.
offset
wartość jest mniejsza niż 0.
-lub-
offset
jest większa niż długość obiektu buffer
.
-lub-
size
wartość jest mniejsza niż 0.
-lub-
size
jest większa niż długość buffer
minus offset
.
Element NetworkStream nie obsługuje odczytywania.
Wystąpił błąd podczas uzyskiwania dostępu do gniazda.
-lub-
Wystąpił błąd odczytu z sieci.
Element NetworkStream jest zamknięty.
Przykłady
Poniższy przykład kodu używa metody DataAvailable do określenia, czy dane są dostępne do odczytu. Jeśli dane są dostępne, odczytuje je z elementu 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);
Uwagi
Ta metoda odczytuje dane do buffer
i zwraca liczbę bajtów, które zostały pomyślnie odczytane. Operacja Read
odczytuje tyle danych, ile jest dostępnych, do liczby bajtów określonych przez size
parametr .
Uwaga
Sprawdź, czy właściwość NetworkStream jest czytelna, wywołując CanRead właściwość . Jeśli spróbujesz odczytać z elementu NetworkStream , który nie jest czytelny, otrzymasz polecenie InvalidOperationException.
Uwaga
Jeśli otrzymasz obiekt IOException, sprawdź InnerException właściwość , aby określić, czy została spowodowana przez SocketExceptionelement . Jeśli tak, użyj ErrorCode właściwości , aby uzyskać określony kod błędu i zapoznaj się z dokumentacją kodu błędu interfejsu API Gniazda systemu Windows w wersji 2 , aby uzyskać szczegółowy opis błędu.