NetworkStream.Read Método

Definição

Sobrecargas

Name Description
Read(Span<Byte>)

Lê dados do NetworkStream e armazena-os num intervalo de bytes na memória.

Read(Byte[], Int32, Int32)

Lê dados do NetworkStream e armazena-os num array de bytes.

Read(Span<Byte>)

Origem:
NetworkStream.cs
Origem:
NetworkStream.cs
Origem:
NetworkStream.cs
Origem:
NetworkStream.cs
Origem:
NetworkStream.cs

Lê dados do NetworkStream e armazena-os num 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 a partir do NetworkStream.

Devoluções

O número total de bytes lidos no buffer, entre zero (0) e o comprimento do buffer. O método retorna zero (0) apenas se foram solicitados zero bytes ou se não houver mais bytes disponíveis porque o socket peer realizou um desligamento gracioso.

Exceções

Não NetworkStream suporta a leitura.

Ocorreu um erro ao aceder ao soquete.

-ou-

Há uma falha na leitura da rede.

Observações

Este método lê tantos dados disponíveis no buffer parâmetro e devolve o número de bytes lidos com sucesso.

Note

Verifique se é NetworkStream legível ligando para a CanRead propriedade. Se tentar ler de um NetworkStream que não seja legível, obterá um InvalidOperationException.

Note

Se receber um IOException, verifique a InnerException propriedade para determinar se foi causado por um SocketException. Se sim, utilize a propriedade ErrorCode para obter o código de erro específico e consulte a documentação do código de erro da API Windows versão 2 dos sockets para 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ê dados do NetworkStream e armazena-os num array 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[]

Um array do tipo Byte que é a localização na memória para armazenar dados lidos a partir do NetworkStream.

offset
Int32

A localização para buffer começar a armazenar os dados.

countsize
Int32

O número de bytes a ler a partir do NetworkStream.

Devoluções

O número total de bytes lidos no buffer entre zero (0) e a contagem solicitada. O método retorna zero (0) apenas se foram solicitados zero bytes ou se não houver mais bytes disponíveis porque o socket peer realizou um desligamento gracioso.

Exceções

buffer é null.

offset é inferior a 0.

-ou-

offset é maior do que o comprimento de buffer.

-ou-

size é inferior a 0.

-ou-

size é maior que o comprimento de buffer menos offset.

Não NetworkStream suporta a leitura.

Ocorreu um erro ao aceder ao soquete.

-ou-

Há uma falha na leitura da rede.

Exemplos

O exemplo de código seguinte lê dados de NetworkStream um buffer. Se houver dados disponíveis, continua a ler até ao fim do fluxo, 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);

Observações

Este método lê dados e buffer devolve o número de bytes lidos com sucesso. A Read operação lê tantos dados quanto estiver disponível, até ao número de bytes especificado pelo count parâmetro.

Note

Verifique se é NetworkStream legível ligando para a CanRead propriedade. Se tentar ler de um NetworkStream que não seja legível, obterá um InvalidOperationException.

Note

Se receber um IOException, verifique a InnerException propriedade para determinar se foi causado por um SocketException. Se sim, utilize a propriedade ErrorCode para obter o código de erro específico e consulte a documentação do código de erro da API Windows versão 2 dos sockets para uma descrição detalhada do erro.

Ver também

Aplica-se a