Compartilhar via


Socket.ReceiveMessageFromAsync Método

Definição

Sobrecargas

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Inicia o recebimento de forma assíncrona do número especificado de bytes de dados no local especificado do buffer de dados, usando o SocketFlags especificado e armazena as informações de ponto de extremidade e de pacote.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

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

Inicia o recebimento de forma assíncrona do número especificado de bytes de dados no local especificado do buffer de dados, usando o SocketFlags especificado e armazena as informações de ponto de extremidade e de pacote.

public:
 bool ReceiveMessageFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveMessageFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveMessageFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveMessageFromAsync (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

O RemoteEndPoint não pode ser nulo.

Ocorreu um erro ao tentar acessar o soquete.

Comentários

O ReceiveMessageFromAsync método é usado principalmente para receber dados de mensagem em um soquete sem conexão. O endereço local do soquete deve ser conhecido. Esse método só pode ser usado com datagram e soquetes brutos. O soquete deve ser inicializado com o tipo de soquete definido como Dgram ou Raw antes de chamar esse método. Isso pode ser feito quando o soquete é construído usando Socket.

O chamador deve definir a SocketAsyncEventArgs.RemoteEndPoint propriedade como um EndPoint do mesmo tipo que o ponto de extremidade do host remoto. A propriedade será atualizada no recebimento bem-sucedido para o ponto de extremidade remoto real.

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 ReceiveMessageFromAsync 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 orientados a mensagens, uma mensagem de entrada é colocada no buffer até o tamanho total do buffer. As SocketAsyncEventArgs.Count propriedades e SocketAsyncEventArgs.Offset determinam onde no buffer os dados são colocados e a quantidade de dados.

O ReceiveMessageFromAsync método define automaticamente a opção de PacketInformation soquete como true a primeira vez que é chamado para um determinado Socket. No entanto, o IPPacketInformation objeto só será válido para pacotes que chegam ao computador local depois que a opção de soquete tiver sido definida. Se um soquete for enviado entre quando o soquete estiver associado a um ponto de extremidade local (explicitamente pelo Bind método ou implicitamente por um dos Connectmétodos , ConnectAsync, SendToou SendToAsync ) e a primeira chamada para o ReceiveMessageFromAsync método, as chamadas ao ReceiveMessageFromAsync método resultarão em objetos inválidos IPPacketInformation para esses pacotes.

Para garantir que todos os IPPacketInformation objetos sejam válidos, um aplicativo deve definir a opção de PacketInformation soquete comotrue antes de ser associado a um ponto de extremidade local usando o SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) método .

Um aplicativo pode examinar os objetos resultantes IPPacketInformation se precisar saber se o datagrama foi enviado usando um endereço unicast, multicast ou difusão.

Confira também

Aplica-se a

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

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

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)

Parâmetros

buffer
ArraySegment<Byte>

O buffer para os dados recebidos.

remoteEndPoint
EndPoint

Um ponto de extremidade do mesmo tipo que o ponto de extremidade do host remoto.

Retornos

Uma tarefa assíncrona que é concluída com um SocketReceiveMessageFromResult que contém o número de bytes recebidos e informações adicionais sobre o host de envio.

Exceções

O objeto Socket foi fechado.

remoteEndPoint é null.

Você deve chamar o método Bind antes de executar essa operação.

Aplica-se a

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

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

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.

remoteEndPoint
EndPoint

Um ponto de extremidade do mesmo tipo que o ponto de extremidade do host remoto.

Retornos

Uma tarefa assíncrona que é concluída com um SocketReceiveMessageFromResult que contém o número de bytes recebidos e informações adicionais sobre o host de envio.

Exceções

O objeto Socket foi fechado.

remoteEndPoint é null.

Você deve chamar o método Bind antes de executar essa operação.

Aplica-se a

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

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

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

Parâmetros

buffer
Memory<Byte>

O buffer para os dados recebidos.

remoteEndPoint
EndPoint

Um ponto de extremidade do mesmo tipo que o ponto de extremidade do host remoto.

cancellationToken
CancellationToken

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

Retornos

Uma tarefa assíncrona que é concluída com um SocketReceiveMessageFromResult que contém o número de bytes recebidos e informações adicionais sobre o host de envio.

Exceções

O objeto Socket foi fechado.

remoteEndPoint é null.

Você deve chamar o método Bind antes de executar essa operação.

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

Aplica-se a

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

Recebe dados e retorna informações adicionais sobre o remetente da mensagem.

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

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.

remoteEndPoint
EndPoint

Um ponto de extremidade do mesmo tipo que o ponto de extremidade do host remoto.

cancellationToken
CancellationToken

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

Retornos

Uma tarefa assíncrona que é concluída com um SocketReceiveMessageFromResult que contém o número de bytes recebidos e informações adicionais sobre o host de envio.

Exceções

O objeto Socket foi fechado.

remoteEndPoint é null.

Você deve chamar o método Bind antes de executar essa operação.

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

Aplica-se a