Socket.EndReceiveMessageFrom Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.
- 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
element nie został zwrócony przez wywołanie BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) metody .
EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation) wcześniej był wywoływany dla odczytu asynchronicznego.
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 Task
parametrach .
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.