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

Element 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

EndPointŹródło .

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+ : Socket została zamknięta.

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

Uwagi

Ważne

Jest to interfejs API zgodności. Nie zalecamy używania metod APM (Begin* i End*) do nowego programowania. Zamiast tego należy użyć Taskodpowiedników opartych na protokole .

EndReceiveFrom kończy operację rozpoczętą przez BeginReceiveFrom. Musisz przekazać IAsyncResult utworzony przez odpowiednie 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