NetworkStream.Read Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
Read(Span<Byte>) |
Lê dados do NetworkStream e os armazena em um intervalo de bytes na memória. |
Read(Byte[], Int32, Int32) |
Lê dados do NetworkStream e os armazena em uma matriz de bytes. |
Read(Span<Byte>)
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
Lê dados do NetworkStream e os armazena em um intervalo de bytes na memória.
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
Parâmetros
Uma região de memória para armazenar dados lidos do NetworkStream.
Retornos
O número de bytes lidos de NetworkStream.
Exceções
O NetworkStream não oferece suporte à leitura.
O NetworkStream está fechado.
Comentários
Esse método lê o máximo de dados que está disponível no buffer
parâmetro e retorna o número de bytes lidos com êxito.
Observação
Verifique se o NetworkStream é legível chamando a CanRead propriedade . Se você tentar ler de um NetworkStream que não é legível, receberá um InvalidOperationException.
Observação
Se você receber um IOException, marcar a InnerException propriedade para determinar se ela foi causada por um SocketException. Nesse caso, use a ErrorCode propriedade para obter o código de erro específico e consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.
Aplica-se a
Read(Byte[], Int32, Int32)
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
Lê dados do NetworkStream e os armazena em uma matriz de bytes.
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
Parâmetros
- buffer
- Byte[]
Uma matriz do tipo Byte que é o local na memória onde os dados lidos de NetworkStream serão armazenados.
- offset
- Int32
O local em buffer
onde os dados começarão a ser armazenados.
- sizecount
- Int32
O número de bytes a serem lidos de NetworkStream.
Retornos
O número de bytes lidos de NetworkStream.
Exceções
buffer
é null
.
offset
é menor que 0.
- ou -
offset
é maior que o comprimento do buffer
.
- ou -
size
é menor que 0.
- ou -
size
é maior que o tamanho de buffer
menos offset
.
O NetworkStream não oferece suporte à leitura.
O NetworkStream está fechado.
Exemplos
O exemplo de código a seguir usa DataAvailable para determinar se os dados estão disponíveis para leitura. Se os dados estiverem disponíveis, eles serão lidos no 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);
Comentários
Esse método lê os dados buffer
e retorna o número de bytes lidos com êxito. A Read
operação lê o máximo de dados que estiver disponível, até o número de bytes especificados size
pelo parâmetro .
Observação
Verifique se o NetworkStream é legível chamando a CanRead propriedade . Se você tentar ler de um NetworkStream que não é legível, receberá um InvalidOperationException.
Observação
Se você receber um IOException, marcar a InnerException propriedade para determinar se ela foi causada por um SocketException. Nesse caso, use a ErrorCode propriedade para obter o código de erro específico e consulte a documentação do código de erro da API do Windows Sockets versão 2 para obter uma descrição detalhada do erro.