Socket.EndReceiveFrom(IAsyncResult, EndPoint) 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.
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.
Retornos
Se tiver êxito, o número de bytes recebidos. Caso contrário, retornará 0.
Exceções
asyncResult
é null
.
asyncResult
não foi retornado por uma chamada ao método BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object).
O EndReceiveFrom(IAsyncResult, EndPoint) foi chamado anteriormente para a leitura assíncrona.
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 Task
equivalentes 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.