Socket.ReceiveMessageFromAsync Método
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.
Sobrecargas
| Nome | Description |
|---|---|
| ReceiveMessageFromAsync(SocketAsyncEventArgs) |
Começa a receber de forma assíncrona o número especificado de bytes de dados no local especificado no buffer de dados, usando o especificado SocketFlagse armazena as informações de ponto de extremidade e 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
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Começa a receber de forma assíncrona o número especificado de bytes de dados no local especificado no buffer de dados, usando o especificado SocketFlagse armazena as informações de ponto de extremidade e 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
O SocketAsyncEventArgs objeto a ser usado para esta operação de soquete assíncrona.
Retornos
true se a operação de E/S estiver pendente. O Completed evento no e parâmetro será gerado após a conclusão da operação.
false se a operação de E/S for concluída de forma síncrona. Nesse caso, Completed o e evento no parâmetro não será gerado e o e objeto passado como um parâmetro poderá ser examinado imediatamente após a chamada do método retornar para recuperar o resultado da operação.
Exceções
Não RemoteEndPoint pode ser nulo.
O Socket foi fechado.
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 para qualquer objeto de estado de usuário desejado antes de chamar o ReceiveMessageFromAsync método, para que as informações sejam recuperáveis 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 à mensagem, uma mensagem de entrada é colocada no buffer até o tamanho total do buffer. As SocketAsyncEventArgs.Count propriedades e SocketAsyncEventArgs.Offset as propriedades 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 após a opção de soquete ter sido definida. Se um soquete for enviado pacotes entre quando o soquete estiver associado a um ponto de extremidade local (explicitamente pelo Bind método ou implicitamente por um dos Connectmétodos , ConnectAsyncou SendTo, e SendToAsync 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 paratrue 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 datagram foi enviado usando um endereço unicast, multicast ou de transmissão.
Confira também
Aplica-se a
ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- 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 número de bytes recebidos e informações adicionais sobre o host de envio.
Exceções
O Socket objeto foi fechado.
remoteEndPoint é null.
Você deve chamar o método Bind antes de executar esta operação.
Aplica-se a
ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- 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 número de bytes recebidos e informações adicionais sobre o host de envio.
Exceções
O Socket objeto foi fechado.
remoteEndPoint é null.
Você deve chamar o método Bind antes de executar esta operação.
Aplica-se a
ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)
- Origem:
- Socket.Tasks.cs
- Origem:
- Socket.Tasks.cs
- 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
- 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 a operação assíncrona deve ser cancelado.
Retornos
Uma tarefa assíncrona que é concluída com um SocketReceiveMessageFromResult número de bytes recebidos e informações adicionais sobre o host de envio.
Exceções
O Socket objeto foi fechado.
remoteEndPoint é null.
Você deve chamar o método Bind antes de executar esta 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
- 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
- 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 a operação assíncrona deve ser cancelado.
Retornos
Uma tarefa assíncrona que é concluída com um SocketReceiveMessageFromResult número de bytes recebidos e informações adicionais sobre o host de envio.
Exceções
O Socket objeto foi fechado.
remoteEndPoint é null.
Você deve chamar o método Bind antes de executar esta operação.
O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.