Udostępnij za pośrednictwem


Socket.ReceiveMessageFromAsync Metoda

Definicja

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

e
SocketAsyncEventArgs

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

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ę 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

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ę 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