Socket.EndReceiveFrom(IAsyncResult, EndPoint) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Termina uma leitura assíncrona pendente de um endpoint 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
E IAsyncResult que armazena informação de estado e quaisquer dados definidos pelo utilizador para esta operação assíncrona.
Devoluções
Se for bem-sucedido, o número de bytes recebidos. Se não for bem-sucedido, devolve 0.
Exceções
asyncResult é null.
asyncResult não foi respondido por uma chamada ao BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) método.
EndReceiveFrom(IAsyncResult, EndPoint) foi anteriormente chamada para a leitura assíncrona.
.NET Framework, .NET Core e .NET 5-6 apenas: O Socket foi encerrado.
Observações
Importante
Isto é uma API de compatibilidade. Não recomendamos o uso dos métodos APM (Begin* e End*) para novos desenvolvimentos. Em vez disso, use os Taskequivalentes baseados em .
EndReceiveFrom completa a operação iniciada por BeginReceiveFrom. Tem de passar a decisão IAsyncResult criada pela chamada correspondente BeginReceiveFrom .
O EndReceiveFrom método irá bloquear até que os dados estejam disponíveis. Se estiver a usar um protocolo sem conexão, EndReceiveFrom irá ler o primeiro datagrama enfileirado disponível no buffer de rede de entrada. Se estiver a usar um protocolo orientado à ligação, o EndReceiveFrom método irá ler tantos dados quanto estiver disponível até ao número de bytes especificados no size parâmetro do BeginReceiveFrom método. Se o host remoto desligar a Socket ligação com o Shutdown método e todos os dados disponíveis forem recebidos, o EndReceiveFrom método será concluído imediatamente e retornará zero bytes. Para obter os dados recebidos, chama o AsyncState método do IAsyncResult objeto e extrai o buffer contido no objeto de estado resultante. Para identificar o hospedeiro de origem, extrai o EndPoint e lança-o para 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.
Note
Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
Note
Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.