Udostępnij za pośrednictwem


Socket.ReceiveFromAsync Metoda

Definicja

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

e
SocketAsyncEventArgs

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

buffer
Memory<Byte>

Bufor odebranych 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, 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

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

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

buffer
Memory<Byte>

Bufor odebranych danych.

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.

Dotyczy