Compartilhar via


Socket.ReceiveAsync Método

Definição

Sobrecargas

ReceiveAsync(ArraySegment<Byte>)

Recebe os dados de um soquete conectado.

ReceiveAsync(IList<ArraySegment<Byte>>)

Recebe os dados de um soquete conectado.

ReceiveAsync(SocketAsyncEventArgs)

Inicia uma solicitação assíncrona para receber dados de um objeto Socket conectado.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Recebe os dados de um soquete conectado.

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Recebe os dados de um soquete conectado.

ReceiveAsync(Memory<Byte>, CancellationToken)

Recebe os dados de um soquete conectado.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Recebe os dados de um soquete conectado.

ReceiveAsync(ArraySegment<Byte>)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Recebe os dados de um soquete conectado.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer);
member this.ReceiveAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)

Parâmetros

buffer
ArraySegment<Byte>

O buffer para os dados recebidos.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes recebidos.

Exceções

Ocorreu um erro ao tentar acessar o soquete.

Aplica-se a

ReceiveAsync(IList<ArraySegment<Byte>>)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Recebe os dados de um soquete conectado.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)

Parâmetros

buffers
IList<ArraySegment<Byte>>

Uma lista de buffers para os dados recebidos.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes recebidos.

Exceções

O parâmetro buffers era nulo.

Ocorreu um erro ao tentar acessar o soquete.

Comentários

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por Receive(IList<ArraySegment<Byte>>).

Aplica-se a

ReceiveAsync(SocketAsyncEventArgs)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Inicia uma solicitação assíncrona para receber dados de um objeto Socket conectado.

public:
 bool ReceiveAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveAsync (e As SocketAsyncEventArgs) As Boolean

Parâmetros

e
SocketAsyncEventArgs

O objeto SocketAsyncEventArgs a ser usado nessa operação de soquete assíncrono.

Retornos

true se a operação de E/S está pendente. O evento Completed no parâmetro e será acionado após a conclusão da operação.

false se a operação de E/S foi concluída de forma síncrona. Nesse caso, o evento Completed no parâmetro e não será gerado e o objeto e passado como um parâmetro poderá ser examinado imediatamente depois que a chamada do método for retornada para recuperar o resultado da operação.

Exceções

Um argumento era inválido. As propriedades Buffer ou BufferList no parâmetro e devem referenciar buffers válidos. Uma ou a outra dessas propriedades poderá ser definida, mas não ambas ao mesmo tempo.

Uma operação de soquete já estava em andamento com o objeto SocketAsyncEventArgs especificado no parâmetro e.

Ocorreu um erro ao tentar acessar o soquete.

Comentários

O ReceiveAsync método é usado em soquetes conectados ou soquetes sem conexão associados e é usado para ler dados de entrada. O endereço local do soquete deve ser conhecido.

Para soquetes sem conexão associados, essa função restringe os endereços dos quais as mensagens recebidas são aceitas. A função retorna apenas mensagens do endereço remoto especificado na conexão. As mensagens de outros endereços são silenciosamente descartadas.

A SocketAsyncEventArgs.SocketFlags propriedade no e parâmetro fornece ao provedor de serviços Window Sockets informações adicionais sobre a solicitação de leitura. Para obter mais informações sobre como usar esse parâmetro, consulte System.Net.Sockets.SocketFlags.

As seguintes propriedades e eventos no System.Net.Sockets.SocketAsyncEventArgs objeto são necessários para chamar esse método com êxito:

O chamador pode definir a SocketAsyncEventArgs.UserToken propriedade como qualquer objeto de estado de usuário desejado antes de chamar o ReceiveAsync método, para que as informações sejam recuperadas no método de retorno de chamada. Se o retorno de chamada precisar de mais informações do que um único objeto, uma classe pequena poderá ser criada para manter as outras informações de estado necessárias como membros.

Para soquetes no estilo de fluxo de bytes, os dados de entrada são colocados no buffer até que o buffer seja preenchido, a conexão seja fechada ou os dados armazenados em buffer interno sejam esgotados.

Para soquetes orientados a mensagens, uma mensagem de entrada é colocada no buffer até o tamanho total do buffer associado ao e parâmetro . Se a mensagem for maior que o buffer, o buffer será preenchido com a primeira parte da mensagem.

Para soquetes orientados à conexão, o ReceiveAsync método pode indicar o término normal do circuito virtual de uma das duas maneiras que dependem se o soquete é orientado a mensagens ou fluxo de bytes. Para fluxos de bytes, zero bytes que foram lidos indica um fechamento normal e que nenhum bytes será lido. Para soquetes orientados a mensagens, em que uma mensagem de byte zero geralmente é permitida, um SocketException com o SocketAsyncEventArgs.SocketError definido como o código de erro nativo Winsock WSAEDISCON (10101) é usado para indicar o fechamento normal. De qualquer forma, um SocketException com o SocketAsyncEventArgs.SocketError definido como o código de erro nativo Winsock WSAECONNRESET (10054) indica que ocorreu um fechamento abortivo.

Confira também

Aplica-se a

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Recebe os dados de um soquete conectado.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)

Parâmetros

buffer
ArraySegment<Byte>

O buffer para os dados recebidos.

socketFlags
SocketFlags

Uma combinação bit a bit de valores SocketFlags que serão usados ao receber os dados.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes recebidos.

Exceções

Ocorreu um erro ao tentar acessar o soquete.

Aplica-se a

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Recebe os dados de um soquete conectado.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)

Parâmetros

buffers
IList<ArraySegment<Byte>>

Uma lista de buffers para os dados recebidos.

socketFlags
SocketFlags

Uma combinação bit a bit de valores SocketFlags que serão usados ao receber os dados.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes recebidos.

Exceções

O parâmetro buffers era nulo.

Ocorreu um erro ao tentar acessar o soquete.

Comentários

Esse método armazena na tarefa que retorna todas as exceções de não uso que o equivalente síncrono do método pode gerar. Se uma exceção for armazenada na tarefa retornada, essa exceção será gerada quando a tarefa for aguardada. Exceções de uso, como ArgumentException, ainda são geradas de forma síncrona. Para as exceções armazenadas, consulte as exceções geradas por Receive(IList<ArraySegment<Byte>>, SocketFlags).

Aplica-se a

ReceiveAsync(Memory<Byte>, CancellationToken)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Recebe os dados de um soquete conectado.

public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parâmetros

buffer
Memory<Byte>

O buffer para os dados recebidos.

cancellationToken
CancellationToken

Um token de cancelamento que pode ser usado para cancelar a operação assíncrona.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes recebidos.

Exceções

Ocorreu um erro ao tentar acessar o soquete.

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

Aplica-se a

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs
Origem:
Socket.Tasks.cs

Recebe os dados de um soquete conectado.

public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parâmetros

buffer
Memory<Byte>

O buffer para os dados recebidos.

socketFlags
SocketFlags

Uma combinação bit a bit de valores SocketFlags que serão usados ao receber os dados.

cancellationToken
CancellationToken

Um token de cancelamento que pode ser usado para cancelar a operação assíncrona.

Retornos

Uma tarefa assíncrona que é concluída com o número de bytes recebidos.

Exceções

Ocorreu um erro ao tentar acessar o soquete.

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

Aplica-se a