Socket.EndReceiveMessageFrom 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. Esse método também revela mais informações sobre o pacote que EndReceiveFrom(IAsyncResult, EndPoint).
public:
int EndReceiveMessageFrom(IAsyncResult ^ asyncResult, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % endPoint, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int EndReceiveMessageFrom (IAsyncResult asyncResult, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint endPoint, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.EndReceiveMessageFrom : IAsyncResult * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function EndReceiveMessageFrom (asyncResult As IAsyncResult, ByRef socketFlags As SocketFlags, ByRef endPoint As EndPoint, ByRef ipPacketInformation As IPPacketInformation) 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.
- socketFlags
- SocketFlags
Uma combinação bit a bit dos valores SocketFlags para o pacote recebido.
- ipPacketInformation
- IPPacketInformation
O IPAddress e a interface do pacote recebido.
Retornos
Se tiver êxito, o número de bytes recebidos. Caso contrário, retornará 0.
Exceções
asyncResult
não foi retornado por uma chamada ao método BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object).
O EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation) 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 . EndReceiveFrom bloqueará o thread de chamada até que a operação seja concluída.
Examine ipPacketInformation
se você precisa saber se o datagrama foi enviado usando um endereço unicast, multicast ou difusão.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.