Udostępnij za pośrednictwem


NetworkStream.Read Metoda

Definicja

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

buffer
Span<Byte>

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.

Zobacz też

Dotyczy