NetworkStream Classe
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.
Fornece o fluxo subjacente de dados para acesso à rede.
public ref class NetworkStream : System::IO::Stream
public class NetworkStream : System.IO.Stream
type NetworkStream = class
inherit Stream
type NetworkStream = class
inherit Stream
interface IDisposable
Public Class NetworkStream
Inherits Stream
- Herança
- Herança
- Implementações
Comentários
A classe NetworkStream fornece métodos para enviar e receber dados Stream soquetes no modo de bloqueio. Para obter mais informações sobre bloqueio versus bloqueio de Sockets, consulte Usando um soquete de cliente assíncrono. Você pode usar a classe NetworkStream para transferência de dados síncrona e assíncrona. Para obter mais informações sobre comunicação síncrona e assíncrona, consulte Sockets.
Para criar um NetworkStream, você deve fornecer um Socketconectado. Você também pode especificar qual FileAccess permissão o NetworkStream tem sobre o Socketfornecido. Por padrão, fechar o NetworkStream não fecha o Socketfornecido. Se quiser que o NetworkStream tenha permissão para fechar o Socketfornecido, especifique true
para o valor do parâmetro ownsSocket
.
Use os métodos Write e Read para e/S de bloqueio síncrono simples de thread. Se você quiser processar sua E/S de forma assíncrona, considere usar os métodos baseados em Task ou ValueTaskReadAsync e WriteAsync.
O NetworkStream não dá suporte ao acesso aleatório ao fluxo de dados de rede. O valor da propriedade CanSeek, que indica se o fluxo dá suporte à busca, é sempre false
; ler a propriedade Position, ler a propriedade Length ou chamar o método Seek gerará um NotSupportedException.
As operações de leitura e gravação podem ser executadas simultaneamente em uma instância da classe NetworkStream sem a necessidade de sincronização. Desde que haja um thread exclusivo para as operações de gravação e um thread exclusivo para as operações de leitura, não haverá nenhuma interferência cruzada entre threads de leitura e gravação e nenhuma sincronização é necessária.
Construtores
NetworkStream(Socket) |
Cria uma nova instância da classe NetworkStream para o Socketespecificado. |
NetworkStream(Socket, Boolean) |
Inicializa uma nova instância da classe NetworkStream para o Socket especificado com a propriedade Socket especificada. |
NetworkStream(Socket, FileAccess) |
Cria uma nova instância da classe NetworkStream para o Socket especificado com os direitos de acesso especificados. |
NetworkStream(Socket, FileAccess, Boolean) |
Cria uma nova instância da classe NetworkStream para o Socket especificado com os direitos de acesso especificados e a propriedade Socket especificada. |
Propriedades
CanRead |
Obtém um valor que indica se o NetworkStream dá suporte à leitura. |
CanSeek |
Obtém um valor que indica se o fluxo dá suporte à busca. No momento, não há suporte para essa propriedade. Essa propriedade sempre retorna |
CanTimeout |
Indica se as propriedades de tempo limite podem ser usadas para NetworkStream. |
CanTimeout |
Obtém um valor que determina se o fluxo atual pode acabar. (Herdado de Stream) |
CanWrite |
Obtém um valor que indica se o NetworkStream dá suporte à gravação. |
DataAvailable |
Obtém um valor que indica se os dados estão disponíveis no NetworkStream a serem lidos imediatamente. |
Length |
Obtém o comprimento dos dados disponíveis no fluxo. No momento, essa propriedade não tem suporte e sempre lança um NotSupportedException. |
Position |
Obtém ou define a posição atual no fluxo. No momento, essa propriedade não tem suporte e sempre lança um NotSupportedException. |
Readable |
Obtém ou define um valor que indica se o NetworkStream pode ser lido. |
ReadTimeout |
Obtém ou define a quantidade de tempo que uma operação de leitura bloqueia a espera de dados. |
ReadTimeout |
Obtém ou define um valor, em milissegundos, que determina quanto tempo o fluxo tentará ler antes do tempo limite. (Herdado de Stream) |
Socket |
Obtém o Socketsubjacente. |
Writeable |
Obtém um valor que indica se o NetworkStream é gravável. |
WriteTimeout |
Obtém ou define a quantidade de tempo que uma operação de gravação bloqueia a espera de dados. |
WriteTimeout |
Obtém ou define um valor, em milissegundos, que determina por quanto tempo o fluxo tentará gravar antes do tempo limite. (Herdado de Stream) |
Métodos
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Inicia uma leitura assíncrona do NetworkStream. |
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Inicia uma operação de leitura assíncrona. (Considere usar ReadAsync(Byte[], Int32, Int32) em vez disso.) (Herdado de Stream) |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Inicia uma gravação assíncrona em um fluxo. |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Inicia uma operação de gravação assíncrona. (Considere usar WriteAsync(Byte[], Int32, Int32) em vez disso.) (Herdado de Stream) |
Close() |
Fecha o NetworkStream. |
Close() |
Fecha o fluxo atual e libera todos os recursos (como soquetes e identificadores de arquivo) associados ao fluxo atual. Em vez de chamar esse método, verifique se o fluxo foi descartado corretamente. (Herdado de Stream) |
Close(Int32) |
Fecha o NetworkStream depois de aguardar o tempo especificado para permitir que os dados sejam enviados. |
Close(TimeSpan) |
Fecha o NetworkStream depois de aguardar a quantidade de tempo especificada para permitir que os dados sejam enviados. |
CopyTo(Stream) |
Lê os bytes do fluxo atual e os grava em outro fluxo. Ambas as posições de fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyTo(Stream, Int32) |
Lê os bytes do fluxo atual e os grava em outro fluxo, usando um tamanho de buffer especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyToAsync(Stream) |
Lê assíncronamente os bytes do fluxo atual e os grava em outro fluxo. Ambas as posições de fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyToAsync(Stream, CancellationToken) |
Lê assíncronamente os bytes do fluxo atual e os grava em outro fluxo, usando um token de cancelamento especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyToAsync(Stream, Int32) |
Lê de forma assíncrona os bytes do fluxo atual e os grava em outro fluxo, usando um tamanho de buffer especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Lê assíncronamente os bytes do fluxo atual e os grava em outro fluxo, usando um token de cancelamento e tamanho de buffer especificado. Ambas as posições de fluxos são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CreateObjRef(Type) |
Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
CreateWaitHandle() |
Obsoleto.
Obsoleto.
Obsoleto.
Aloca um objeto WaitHandle. (Herdado de Stream) |
Dispose() |
Libera todos os recursos usados pelo Stream. (Herdado de Stream) |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo NetworkStream e, opcionalmente, libera os recursos gerenciados. |
DisposeAsync() |
Libera de forma assíncrona os recursos não gerenciados usados pelo Stream. (Herdado de Stream) |
EndRead(IAsyncResult) |
Manipula o fim de uma leitura assíncrona. |
EndRead(IAsyncResult) |
Aguarda a conclusão da leitura assíncrona pendente. (Considere usar ReadAsync(Byte[], Int32, Int32) em vez disso.) (Herdado de Stream) |
EndWrite(IAsyncResult) |
Manipula o final de uma gravação assíncrona. |
EndWrite(IAsyncResult) |
Encerra uma operação de gravação assíncrona. (Considere usar WriteAsync(Byte[], Int32, Int32) em vez disso.) (Herdado de Stream) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Finalize() |
Libera todos os recursos usados pelo NetworkStream. |
Flush() |
Libera dados do fluxo. Esse método é reservado para uso futuro. |
FlushAsync() |
Limpa de forma assíncrona todos os buffers para esse fluxo e faz com que todos os dados em buffer sejam gravados no dispositivo subjacente. (Herdado de Stream) |
FlushAsync(CancellationToken) |
Libera dados do fluxo como uma operação assíncrona. |
FlushAsync(CancellationToken) |
Limpa de forma assíncrona todos os buffers para esse fluxo, faz com que todos os dados em buffer sejam gravados no dispositivo subjacente e monitora solicitações de cancelamento. (Herdado de Stream) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
InitializeLifetimeService() |
Obsoleto.
Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida dessa instância. (Herdado de MarshalByRefObject) |
MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto MarshalByRefObject atual. (Herdado de MarshalByRefObject) |
ObjectInvariant() |
Obsoleto.
Fornece suporte para um Contract. (Herdado de Stream) |
Read(Byte[], Int32, Int32) |
Lê dados do NetworkStream e os armazena em uma matriz de bytes. |
Read(Span<Byte>) |
Lê dados do NetworkStream e os armazena em um intervalo de bytes na memória. |
Read(Span<Byte>) |
Quando substituído em uma classe derivada, lê uma sequência de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos. (Herdado de Stream) |
ReadAsync(Byte[], Int32, Int32) |
Lê de forma assíncrona uma sequência de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos. (Herdado de Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Lê dados do NetworkStream e os armazena em um intervalo especificado de uma matriz de bytes como uma operação assíncrona. |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Lê de forma assíncrona uma sequência de bytes do fluxo atual, avança a posição dentro do fluxo pelo número de bytes lidos e monitora solicitações de cancelamento. (Herdado de Stream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Lê dados do NetworkStream e os armazena em um intervalo de memória de bytes como uma operação assíncrona. |
ReadAsync(Memory<Byte>, CancellationToken) |
Lê de forma assíncrona uma sequência de bytes do fluxo atual, avança a posição dentro do fluxo pelo número de bytes lidos e monitora solicitações de cancelamento. (Herdado de Stream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Lê pelo menos um número mínimo de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos. (Herdado de Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Lê de forma assíncrona pelo menos um número mínimo de bytes do fluxo atual, avança a posição dentro do fluxo pelo número de bytes lidos e monitora solicitações de cancelamento. (Herdado de Stream) |
ReadByte() |
Lê um byte do NetworkStream e avança a posição dentro do fluxo por um byte ou retorna -1 se estiver no final do fluxo. |
ReadByte() |
Lê um byte do fluxo e avança a posição dentro do fluxo por um byte ou retorna -1 se estiver no final do fluxo. (Herdado de Stream) |
ReadExactly(Byte[], Int32, Int32) |
Lê |
ReadExactly(Span<Byte>) |
Lê bytes do fluxo atual e avança a posição dentro do fluxo até que a |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Lê de forma assíncrona |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Lê bytes de forma assíncrona do fluxo atual, avança a posição dentro do fluxo até que o |
Seek(Int64, SeekOrigin) |
Define a posição atual do fluxo como o valor fornecido. No momento, esse método não tem suporte e sempre lança um NotSupportedException. |
SetLength(Int64) |
Define o comprimento do fluxo. Esse método sempre lança um NotSupportedException. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Write(Byte[], Int32, Int32) |
Grava dados no NetworkStream de um intervalo especificado de uma matriz de bytes. |
Write(ReadOnlySpan<Byte>) |
Grava dados no NetworkStream de um intervalo de bytes somente leitura. |
Write(ReadOnlySpan<Byte>) |
Quando substituído em uma classe derivada, grava uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo pelo número de bytes gravados. (Herdado de Stream) |
WriteAsync(Byte[], Int32, Int32) |
Grava de forma assíncrona uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo pelo número de bytes gravados. (Herdado de Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Grava dados no NetworkStream do intervalo especificado de uma matriz de bytes como uma operação assíncrona. |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Grava de forma assíncrona uma sequência de bytes no fluxo atual, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora solicitações de cancelamento. (Herdado de Stream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Grava dados no NetworkStream de um intervalo de memória de bytes de memória somente leitura como uma operação assíncrona. |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Grava de forma assíncrona uma sequência de bytes no fluxo atual, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora solicitações de cancelamento. (Herdado de Stream) |
WriteByte(Byte) |
Grava um byte na posição atual no NetworkStream e avança a posição dentro do fluxo por um byte. |
WriteByte(Byte) |
Grava um byte na posição atual no fluxo e avança a posição dentro do fluxo por um byte. (Herdado de Stream) |
Implantações explícitas de interface
IDisposable.Dispose() |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Libera todos os recursos usados pelo NetworkStream. |
Métodos de Extensão
CopyToAsync(Stream, PipeWriter, CancellationToken) |
Lê assíncronamente os bytes do Stream e os grava no PipeWriterespecificado usando um token de cancelamento. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Configura como as esperas nas tarefas retornadas de um descartável assíncrono serão executadas. |