NetworkStream.Read Método

Definição

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

buffer
Span<Byte>

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.

Erro ao acessar o soquete.

- ou -

Há uma falha na leitura da rede.

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.

Erro ao acessar o soquete.

- ou -

Há uma falha na leitura da rede.

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.

Confira também

Aplica-se a