NetworkStream.Read Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
Read(Span<Byte>) |
Считывает данные из NetworkStream и сохраняет их в диапазоне байтов в памяти. |
Read(Byte[], Int32, Int32) |
Считывает данные из NetworkStream и сохраняет их в массив байтов. |
Read(Span<Byte>)
- Исходный код:
- 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.
Возвращаемое значение
Число байтов, читаемых из объекта NetworkStream.
Исключения
NetworkStream не поддерживает чтение.
Произошла ошибка при обращении к сокету.
-или-
Произошел отказ в процессе чтения из сети.
Объект NetworkStream закрыт.
Комментарии
Этот метод считывает в параметр столько данных, сколько доступно buffer
, и возвращает количество успешно прочитанных байтов.
Примечание
Убедитесь, что объект доступен для NetworkStream чтения, вызвав CanRead свойство . При попытке чтения из NetworkStream объекта , который недоступен для чтения, вы получите .InvalidOperationException
Примечание
Если вы получаете IOException, проверка InnerException свойство, чтобы определить, был ли он вызван SocketException. Если это так, используйте ErrorCode свойство , чтобы получить конкретный код ошибки, и ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Применяется к
Read(Byte[], Int32, Int32)
- Исходный код:
- NetworkStream.cs
- Исходный код:
- NetworkStream.cs
- Исходный код:
- NetworkStream.cs
Считывает данные из NetworkStream и сохраняет их в массив байтов.
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
Параметры
- buffer
- Byte[]
Массив типа Byte, который является местоположением в памяти для хранения данных, прочитанных из NetworkStream.
- offset
- Int32
Местоположение в объекте buffer
, начиная с которого записываются сохраняемые данные.
- sizecount
- Int32
Число байтов, читаемых из объекта NetworkStream.
Возвращаемое значение
Число байтов, читаемых из объекта NetworkStream.
Исключения
buffer
имеет значение null
.
Значение параметраoffset
меньше 0.
-или-
Значение offset
превышает длину buffer
.
-или-
Значение параметраsize
меньше 0.
-или-
длина значения size
больше, чем длина buffer
минус offset
.
NetworkStream не поддерживает чтение.
Произошла ошибка при обращении к сокету.
-или-
Произошел отказ в процессе чтения из сети.
Объект NetworkStream закрыт.
Примеры
В следующем примере кода используется для DataAvailable определения доступности данных для чтения. Если данные доступны, они считываются из 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);
Комментарии
Этот метод считывает данные в buffer
и возвращает число успешно прочитанных байтов. Операция Read
считывает столько данных, сколько доступно, вплоть до количества байтов, указанного параметром size
.
Примечание
Убедитесь, что объект доступен для NetworkStream чтения, вызвав CanRead свойство . При попытке чтения из NetworkStream объекта , который недоступен для чтения, вы получите .InvalidOperationException
Примечание
Если вы получаете IOException, проверка InnerException свойство, чтобы определить, был ли он вызван SocketException. Если это так, используйте ErrorCode свойство , чтобы получить конкретный код ошибки, и ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.