Socket.ReceiveFromAsync 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.
Przeciążenia
ReceiveFromAsync(SocketAsyncEventArgs) |
Rozpoczyna asynchronicznie odbierać dane z określonego urządzenia sieciowego. |
ReceiveFromAsync(ArraySegment<Byte>, EndPoint) |
Odbiera dane i zwraca punkt końcowy hosta wysyłającego. |
ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Odbiera dane i zwraca punkt końcowy hosta wysyłającego. |
ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken) |
Odbiera dane i zwraca punkt końcowy hosta wysyłającego. |
ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Odbiera dane i zwraca punkt końcowy hosta wysyłającego. |
ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken) |
Odbiera datagram do bufora danych przy użyciu określonego SocketFlagselementu i przechowuje punkt końcowy. |
ReceiveFromAsync(SocketAsyncEventArgs)
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
Rozpoczyna asynchronicznie odbierać dane z określonego urządzenia sieciowego.
public:
bool ReceiveFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveFromAsync (e As SocketAsyncEventArgs) As Boolean
Parametry
Obiekt SocketAsyncEventArgs do użycia dla tej operacji asynchronicznego gniazda.
Zwraca
true
jeśli operacja we/wy jest oczekująca. Zdarzenie Completed w parametrze e
zostanie podniesione po zakończeniu operacji.
false
jeśli operacja we/wy została ukończona synchronicznie. W takim przypadku Completed zdarzenie parametru e
nie zostanie zgłoszone, a e
obiekt przekazany jako parametr może zostać zbadany natychmiast po powrocie wywołania metody w celu pobrania wyniku operacji.
Wyjątki
Parametr RemoteEndPoint nie może mieć wartości null.
Operacja gniazda była już w toku przy użyciu SocketAsyncEventArgs obiektu określonego w parametrze e
.
Element Socket został zamknięty.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Uwagi
Metoda ReceiveFromAsync jest używana głównie do odbierania danych w gniazdie bez połączenia. Adres lokalny gniazda musi być znany.
Obiekt wywołujący musi ustawić SocketAsyncEventArgs.RemoteEndPoint właściwość na EndPoint taki sam typ jak punkt końcowy hosta zdalnego. Właściwość zostanie zaktualizowana po pomyślnym odebraniu do rzeczywistego zdalnego punktu końcowego.
Właściwość SocketAsyncEventArgs.SocketFlags parametru e
udostępnia dostawcę usługi Windows Sockets z dodatkowymi informacjami o żądaniu odczytu. Aby uzyskać więcej informacji na temat używania tego parametru, zobacz System.Net.Sockets.SocketFlags.
Następujące właściwości i zdarzenia obiektu System.Net.Sockets.SocketAsyncEventArgs są wymagane do pomyślnego wywołania tej metody:
Obiekt wywołujący może ustawić SocketAsyncEventArgs.UserToken właściwość na dowolny obiekt stanu użytkownika żądany przed wywołaniem ReceiveFromAsync metody, aby informacje można było pobrać w metodzie wywołania zwrotnego. Jeśli wywołanie zwrotne wymaga więcej informacji niż pojedynczy obiekt, można utworzyć małą klasę do przechowywania innych wymaganych informacji o stanie jako elementów członkowskich.
W przypadku gniazd zorientowanych na komunikaty przychodzący komunikat jest umieszczany w buforze do całkowitego rozmiaru buforu. Właściwości SocketAsyncEventArgs.Count i SocketAsyncEventArgs.Offset określają, gdzie w buforze są umieszczane dane, oraz ilość danych.
W przypadku gniazd w stylu strumienia bajtów dane przychodzące są umieszczane w buforze do momentu wypełnienia buforu, zamknięcia połączenia lub wyczerpania danych buforowanych wewnętrznie. Właściwości SocketAsyncEventArgs.Count i SocketAsyncEventArgs.Offset określają, gdzie w buforze są umieszczane dane, oraz ilość danych.
Zobacz też
Dotyczy
ReceiveFromAsync(ArraySegment<Byte>, EndPoint)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Odbiera dane i zwraca punkt końcowy hosta wysyłającego.
public:
System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveFromResult> ^ ReceiveFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveFromResult)
Parametry
- buffer
- ArraySegment<Byte>
Bufor odebranych danych.
- remoteEndPoint
- EndPoint
Punkt końcowy tego samego typu co punkt końcowy hosta zdalnego.
Zwraca
Zadanie asynchroniczne, które kończy się z SocketReceiveFromResult liczbą odebranych bajtów i punktem końcowym hosta wysyłającego.
Wyjątki
remoteEndPoint
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Obiekt wywołujący w stosie wywołań nie ma wymaganych uprawnień.
Dotyczy
ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Odbiera dane i zwraca punkt końcowy hosta wysyłającego.
public:
System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveFromResult> ^ ReceiveFromAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
member this.ReceiveFromAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint) As Task(Of SocketReceiveFromResult)
Parametry
- buffer
- ArraySegment<Byte>
Bufor odebranych danych.
- socketFlags
- SocketFlags
Bitowa kombinacja wartości SocketFlags, które będą używane podczas odbierania danych.
- remoteEndPoint
- EndPoint
Punkt końcowy tego samego typu co punkt końcowy hosta zdalnego.
Zwraca
Zadanie asynchroniczne, które kończy się z SocketReceiveFromResult liczbą odebranych bajtów i punktem końcowym hosta wysyłającego.
Wyjątki
remoteEndPoint
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Obiekt wywołujący w stosie wywołań nie ma wymaganych uprawnień.
Dotyczy
ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Odbiera dane i zwraca punkt końcowy hosta wysyłającego.
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveFromResult)
Parametry
- remoteEndPoint
- EndPoint
Punkt końcowy tego samego typu co punkt końcowy hosta zdalnego.
- cancellationToken
- CancellationToken
Należy anulować token anulowania, który może służyć do sygnalizowania operacji asynchronicznej.
Zwraca
Zadanie asynchroniczne, które kończy się z SocketReceiveFromResult liczbą odebranych bajtów i punktem końcowym hosta wysyłającego.
Wyjątki
remoteEndPoint
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Obiekt wywołujący w stosie wywołań nie ma wymaganych uprawnień.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.
Dotyczy
ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Odbiera dane i zwraca punkt końcowy hosta wysyłającego.
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveFromResult)
Parametry
- socketFlags
- SocketFlags
Bitowa kombinacja wartości SocketFlags, które będą używane podczas odbierania danych.
- remoteEndPoint
- EndPoint
Punkt końcowy tego samego typu co punkt końcowy hosta zdalnego.
- cancellationToken
- CancellationToken
Należy anulować token anulowania, który może służyć do sygnalizowania operacji asynchronicznej.
Zwraca
Zadanie asynchroniczne, które kończy się z SocketReceiveFromResult liczbą odebranych bajtów i punktem końcowym hosta wysyłającego.
Wyjątki
remoteEndPoint
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Obiekt wywołujący w stosie wywołań nie ma wymaganych uprawnień.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.
Dotyczy
ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)
- Źródło:
- Socket.Tasks.cs
- Źródło:
- Socket.Tasks.cs
Odbiera datagram do bufora danych przy użyciu określonego SocketFlagselementu i przechowuje punkt końcowy.
public System.Threading.Tasks.ValueTask<int> ReceiveFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress receivedAddress, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, receivedAddress As SocketAddress, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametry
- socketFlags
- SocketFlags
Bitowa kombinacja SocketFlags wartości, które będą używane podczas odbierania danych.
- receivedAddress
- SocketAddress
SocketAddress Wystąpienie, które jest aktualizowane przy użyciu wartości zdalnego elementu równorzędnego po zdaniu tej metody.
- cancellationToken
- CancellationToken
Należy anulować token anulowania, który może służyć do sygnalizowania operacji asynchronicznej.
Zwraca
Zadanie asynchroniczne, które kończy się z SocketReceiveFromResult liczbą odebranych bajtów i punktem końcowym hosta wysyłającego.
Wyjątki
receivedAddress
to null
.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.