Compartilhar via


Socket.EndReceiveFrom(IAsyncResult, EndPoint) Método

Definição

Termina uma leitura assíncrona pendente de um ponto de extremidade específico.

public:
 int EndReceiveFrom(IAsyncResult ^ asyncResult, System::Net::EndPoint ^ % endPoint);
public int EndReceiveFrom (IAsyncResult asyncResult, ref System.Net.EndPoint endPoint);
member this.EndReceiveFrom : IAsyncResult * EndPoint -> int
Public Function EndReceiveFrom (asyncResult As IAsyncResult, ByRef endPoint As EndPoint) As Integer

Parâmetros

asyncResult
IAsyncResult

Um IAsyncResult que armazena informações de estado e dados definidos pelo usuário para essa operação assíncrona.

endPoint
EndPoint

A fonte de EndPoint.

Retornos

Se tiver êxito, o número de bytes recebidos. Caso contrário, retornará 0.

Exceções

asyncResult é null.

O EndReceiveFrom(IAsyncResult, EndPoint) foi chamado anteriormente para a leitura assíncrona.

Ocorreu um erro ao tentar acessar o soquete.

- ou -

Somente .NET 7+: o Socket foi fechado.

somente .NET Framework, .NET Core e .NET 5-6: o Socket foi fechado.

Comentários

Importante

Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin* e End*) para novo desenvolvimento. Em vez disso, use os Taskequivalentes baseados em .

EndReceiveFrom conclui a operação iniciada por BeginReceiveFrom. Você precisa passar o IAsyncResult criado pela chamada correspondente BeginReceiveFrom .

O EndReceiveFrom método será bloqueado até que os dados sejam disponibilizados. Se você estiver usando um protocolo sem conexão, EndReceiveFrom lerá o primeiro datagrama enfileirado disponível no buffer de rede de entrada. Se você estiver usando um protocolo orientado à conexão, o EndReceiveFrom método lerá o máximo de dados que estiver disponível até o número de bytes especificados no size parâmetro do BeginReceiveFrom método . Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o EndReceiveFrom método será concluído imediatamente e retornará zero bytes. Para obter os dados recebidos, chame o AsyncState método do IAsyncResult objeto e extraia o buffer contido no objeto de estado resultante. Para identificar o host de origem, extraia o e converta-o EndPoint em um IPEndPoint. Use o IPEndPoint.Address método para obter o endereço IP e o IPEndPoint.Port método para obter o número da porta.

Observação

Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de rede em .NET Framework.

Aplica-se a