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
Параметры
Область памяти для хранения данных, считываемых из .NetworkStream
Возвращаемое значение
Общее количество байтов, считываемых в буфер, от нуля (0) до длины буфера. Метод возвращает ноль (0) только в том случае, если запрашивались ноль байтов или если больше байтов не доступно, так как сокет однорангового узла выполнил корректное завершение работы.
Исключения
Не NetworkStream поддерживает чтение.
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 закрыт.
Примеры
В следующем примере кода считываются данные из 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 для подробного описания ошибки.