Socket.ReceiveMessageFromAsync 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
ReceiveMessageFromAsync(SocketAsyncEventArgs) |
Zaczyna asynchronicznie odbierać określoną liczbę bajtów danych do określonej lokalizacji w buforze danych przy użyciu określonej wartości SocketFlagsi przechowuje informacje o punkcie końcowym i pakiecie. |
ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint) |
Odbiera dane i zwraca dodatkowe informacje o nadawcy wiadomości. |
ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Odbiera dane i zwraca dodatkowe informacje o nadawcy wiadomości. |
ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken) |
Odbiera dane i zwraca dodatkowe informacje o nadawcy wiadomości. |
ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Odbiera dane i zwraca dodatkowe informacje o nadawcy wiadomości. |
ReceiveMessageFromAsync(SocketAsyncEventArgs)
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
Zaczyna asynchronicznie odbierać określoną liczbę bajtów danych do określonej lokalizacji w buforze danych przy użyciu określonej wartości SocketFlagsi przechowuje informacje o punkcie końcowym i pakiecie.
public:
bool ReceiveMessageFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveMessageFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveMessageFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveMessageFromAsync (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 parametru 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 podniesione, a e
obiekt przekazany jako parametr może zostać zbadany natychmiast po powrocie wywołania metody w celu pobrania wyniku operacji.
Wyjątki
Nie RemoteEndPoint może mieć wartości null.
Została zamknięta Socket .
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Uwagi
Metoda ReceiveMessageFromAsync jest używana głównie do odbierania danych komunikatów na gniazdach bez połączenia. Adres lokalny gniazda musi być znany. Ta metoda może być używana tylko z datagramem i nieprzetworzonymi gniazdami. Gniazdo musi zostać zainicjowane przy użyciu typu gniazda ustawionego na Dgram lub Raw przed wywołaniem tej metody. Można to zrobić, gdy gniazdo jest skonstruowane przy użyciu polecenia Socket.
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.
Następujące właściwości i zdarzenia obiektu są wymagane do pomyślnego System.Net.Sockets.SocketAsyncEventArgs 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 ReceiveMessageFromAsync metody, aby informacje mogły zostać pobrane w metodzie wywołania zwrotnego. Jeśli wywołanie zwrotne wymaga więcej informacji niż pojedynczy obiekt, można utworzyć małą klasę, aby przechowywać inne wymagane informacje o stanie jako elementy członkowskie.
W przypadku gniazd zorientowanych na komunikaty do buforu do całkowitego rozmiaru buforu jest umieszczany komunikat przychodzący. Właściwości SocketAsyncEventArgs.Count i SocketAsyncEventArgs.Offset określają, gdzie w buforze są umieszczane dane i ilość danych.
Metoda ReceiveMessageFromAsync automatycznie ustawia PacketInformation opcję gniazda po true
raz pierwszy jest wywoływana dla danego Socket.
IPPacketInformation Jednak obiekt będzie prawidłowy tylko dla pakietów, które docierają do komputera lokalnego po ustawieniu opcji gniazda. Jeśli gniazdo jest wysyłane pakiety między gniazdem jest powiązane z lokalnym punktem końcowym (jawnie przez metodę lub niejawnie przez Bind jedną z Connectmetod , ConnectAsync, lubSendToSendToAsync) i pierwsze wywołanie ReceiveMessageFromAsync metody, wywołania ReceiveMessageFromAsync metody spowodują nieprawidłowe IPPacketInformation obiekty dla tych pakietów.
Aby upewnić się, że wszystkie IPPacketInformation obiekty są prawidłowe, aplikacja powinna ustawić PacketInformation opcję gniazda natrue
wartość przed jej powiązaniem z lokalnym punktem końcowym przy użyciu SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) metody .
Aplikacja może zbadać wynikowe IPPacketInformation obiekty, jeśli musi wiedzieć, czy datagram został wysłany przy użyciu emisji pojedynczej, multiemisji lub adresu emisji.
Zobacz też
Dotyczy
ReceiveMessageFromAsync(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 dodatkowe informacje o nadawcy wiadomości.
public:
System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)
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ę SocketReceiveMessageFromResult z liczbą odebranych bajtów i dodatkowymi informacjami o hoście wysyłającym.
Wyjątki
Socket Obiekt został zamknięty.
remoteEndPoint
to null
.
Przed wykonaniem tej operacji należy wywołać metodę Bind.
Dotyczy
ReceiveMessageFromAsync(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 dodatkowe informacje o nadawcy wiadomości.
public:
System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)
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ę SocketReceiveMessageFromResult z liczbą odebranych bajtów i dodatkowymi informacjami o hoście wysyłającym.
Wyjątki
Socket Obiekt został zamknięty.
remoteEndPoint
to null
.
Przed wykonaniem tej operacji należy wywołać metodę Bind.
Dotyczy
ReceiveMessageFromAsync(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 dodatkowe informacje o nadawcy wiadomości.
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)
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ę SocketReceiveMessageFromResult z liczbą odebranych bajtów i dodatkowymi informacjami o hoście wysyłającym.
Wyjątki
Socket Obiekt został zamknięty.
remoteEndPoint
to null
.
Przed wykonaniem tej operacji należy wywołać metodę Bind.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.
Dotyczy
ReceiveMessageFromAsync(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 dodatkowe informacje o nadawcy wiadomości.
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)
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ę SocketReceiveMessageFromResult z liczbą odebranych bajtów i dodatkowymi informacjami o hoście wysyłającym.
Wyjątki
Socket Obiekt został zamknięty.
remoteEndPoint
to null
.
Przed wykonaniem tej operacji należy wywołać metodę Bind.
Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwróconym zadaniu.