Udostępnij za pośrednictwem


Socket.EndReceiveMessageFrom Metoda

Definicja

Kończy oczekujący asynchroniczny odczyt z określonego punktu końcowego. Ta metoda ujawnia również więcej informacji o pakiecie niż 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

Parametry

asyncResult
IAsyncResult

Obiekt IAsyncResult , który przechowuje informacje o stanie i wszystkie dane zdefiniowane przez użytkownika dla tej operacji asynchronicznej.

socketFlags
SocketFlags

Bitowa kombinacja SocketFlags wartości odebranego pakietu.

endPoint
EndPoint

Źródło EndPoint.

ipPacketInformation
IPPacketInformation

Interfejs IPAddress i odebranego pakietu.

Zwraca

W przypadku powodzenia liczba odebranych bajtów. Jeśli nie powiedzie się, zwraca wartość 0.

Wyjątki

asyncResult to null

-lub-

endPoint to null.

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

-lub-

Tylko platforma .NET 7+ : element Socket został zamknięty.

tylko .NET Framework, .NET Core i .NET 5-6: element Socket został zamknięty.

Uwagi

Ważne

Jest to interfejs API zgodności. Nie zalecamy używania metod APM (Begin* i End*) do tworzenia nowych rozwiązań. Zamiast tego należy użyć odpowiedników opartych na Taskparametrach .

EndReceiveFrom kończy operację rozpoczętą przez BeginReceiveFrom. Należy przekazać IAsyncResult utworzony przez pasujące BeginReceiveFrom wywołanie. EndReceiveFrom Zablokuje wątek wywołujący do momentu ukończenia operacji.

Sprawdź ipPacketInformation , czy datagram został wysłany przy użyciu emisji pojedynczej, multiemisji lub adresu emisji.

Uwaga

Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu.

Dotyczy