NetworkStream.Read Метод

Определение

Перегрузки

Имя Описание
Read(Span<Byte>)

Считывает данные из него NetworkStream и сохраняет его в диапазоне байтов в памяти.

Read(Byte[], Int32, Int32)

Считывает данные из NetworkStream массива байтов и сохраняет их в массиве байтов.

Read(Span<Byte>)

Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs

Считывает данные из него NetworkStream и сохраняет его в диапазоне байтов в памяти.

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

Параметры

buffer
Span<Byte>

Область памяти для хранения данных, считываемых из .NetworkStream

Возвращаемое значение

Общее количество байтов, считываемых в буфер, от нуля (0) до длины буфера. Метод возвращает ноль (0) только в том случае, если запрашивались ноль байтов или если больше байтов не доступно, так как сокет однорангового узла выполнил корректное завершение работы.

Исключения

Не NetworkStream поддерживает чтение.

При доступе к сокету произошла ошибка.

–или–

Сбой чтения из сети.

Комментарии

Этот метод считывает столько данных, сколько доступно в параметре buffer , и возвращает количество байтов, успешно считываемых.

Note

Проверьте, доступен ли NetworkStream для CanRead чтения объект, вызвав свойство. Если вы пытаетесь прочитать из NetworkStream нечитаемого объекта, вы получите InvalidOperationException.

Note

Если вы получаете IOExceptionсвойство, проверьте InnerException , было ли оно вызвано SocketException. В этом случае используйте свойство ErrorCode для получения определенного кода ошибки и ознакомьтесь с кодом ошибки Windows Сокеты версии 2 API для подробного описания ошибки.

Применяется к

Read(Byte[], Int32, Int32)

Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs
Исходный код:
NetworkStream.cs

Считывает данные из NetworkStream массива байтов и сохраняет их в массиве байтов.

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public override int Read(byte[] buffer, int offset, int count);
public override int Read(byte[] buffer, int offset, int size);
override this.Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Public Overrides Function Read (buffer As Byte(), offset As Integer, size As Integer) As Integer

Параметры

buffer
Byte[]

Массив типаByte, который является расположением в памяти для хранения данных, считываемых из.NetworkStream

offset
Int32

buffer Расположение, в котором начинается хранение данных.

countsize
Int32

Число байтов для чтения из .NetworkStream

Возвращаемое значение

Общее число байтов, считываемых в буфер между нулем (0) и запрошенным числом. Метод возвращает ноль (0) только в том случае, если запрашивались ноль байтов или если больше байтов не доступно, так как сокет однорангового узла выполнил корректное завершение работы.

Исключения

buffer равно null.

offset меньше 0.

–или–

offset больше длины buffer.

–или–

size меньше 0.

–или–

size больше длины buffer минуса offset.

Не NetworkStream поддерживает чтение.

При доступе к сокету произошла ошибка.

–или–

Сбой чтения из сети.

Примеры

В следующем примере кода считываются данные из NetworkStream буфера. Если данные доступны, он продолжает чтение до конца потока, добавляя полученные данные в объект 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);

Комментарии

Этот метод считывает данные buffer и возвращает количество байтов, успешно считываемых. Операция Read считывает столько данных, сколько доступно, до количества байтов, указанных параметром count .

Note

Проверьте, доступен ли NetworkStream для CanRead чтения объект, вызвав свойство. Если вы пытаетесь прочитать из NetworkStream нечитаемого объекта, вы получите InvalidOperationException.

Note

Если вы получаете IOExceptionсвойство, проверьте InnerException , было ли оно вызвано SocketException. В этом случае используйте свойство ErrorCode для получения определенного кода ошибки и ознакомьтесь с кодом ошибки Windows Сокеты версии 2 API для подробного описания ошибки.

См. также раздел

Применяется к