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
| Nome | Description |
|---|---|
| Read(Span<Byte>) |
Lê os dados e os NetworkStream armazena em um intervalo de bytes na memória. |
| Read(Byte[], Int32, Int32) |
Lê os dados e os NetworkStream armazena em uma matriz de bytes. |
Read(Span<Byte>)
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
Lê os dados e os NetworkStream 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 da NetworkStream.
Retornos
O número total de bytes lidos no buffer, entre zero (0) e o comprimento do buffer. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
O NetworkStream não dá 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.
Note
Verifique se o NetworkStream valor é legível chamando a CanRead propriedade. Se você tentar ler de um NetworkStream que não é legível, você receberá um InvalidOperationException.
Note
Se você receber um IOException, verifique a InnerException propriedade para determinar se ela foi causada por um SocketException. Nesse caso, use a propriedade ErrorCode para obter o código de erro específico e consulte o código de erro da API Windows Sockets versão 2 documentação para obter uma descrição detalhada do erro.
Aplica-se a
Read(Byte[], Int32, Int32)
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
- Origem:
- NetworkStream.cs
Lê os dados e os NetworkStream armazena em uma matriz de bytes.
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
Parâmetros
- buffer
- Byte[]
Uma matriz de tipo Byte que é o local na memória para armazenar dados lidos da NetworkStream.
- offset
- Int32
O local no buffer qual começar a armazenar os dados.
- countsize
- Int32
O número de bytes a serem lidos da NetworkStream.
Retornos
O número total de bytes lidos no buffer entre zero (0) e a contagem solicitada. O método retornará zero (0) somente se zero bytes tiverem sido solicitados ou se não houver mais bytes disponíveis porque o soquete par realizou um desligamento normal.
Exceções
buffer é null.
offset é menor que 0.
- ou -
offset é maior que o comprimento de buffer.
- ou -
size é menor que 0.
- ou -
size é maior que o comprimento de buffer menos offset.
O NetworkStream não dá suporte à leitura.
O NetworkStream está fechado.
Exemplos
O exemplo de código a seguir lê os NetworkStream dados de um buffer. Se os dados estiverem disponíveis, ele continuará lendo até que o final do fluxo seja atingido, acrescentando os dados recebidos a um 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);
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 count pelo parâmetro.
Note
Verifique se o NetworkStream valor é legível chamando a CanRead propriedade. Se você tentar ler de um NetworkStream que não é legível, você receberá um InvalidOperationException.
Note
Se você receber um IOException, verifique a InnerException propriedade para determinar se ela foi causada por um SocketException. Nesse caso, use a propriedade ErrorCode para obter o código de erro específico e consulte o código de erro da API Windows Sockets versão 2 documentação para obter uma descrição detalhada do erro.