NetworkStream.Read Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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.
Está NetworkStream fechado.
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.
Está NetworkStream fechado.
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.