Compartilhar via


Socket.EndReceiveMessageFrom Método

Definição

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.

endPoint
EndPoint

A fonte de EndPoint.

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 é null

- ou -

endPoint é null.

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 . 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.

Aplica-se a