Freigeben über


Socket.ReceiveMessageFromAsync Methode

Definition

Überlädt

Name Beschreibung
ReceiveMessageFromAsync(SocketAsyncEventArgs)

Beginnt mit dem asynchronen Empfangen der angegebenen Anzahl von Daten an den angegebenen Speicherort im Datenpuffer mithilfe der angegebenen SocketFlagsDaten und speichert die Endpunkt- und Paketinformationen.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Empfängt Daten und gibt zusätzliche Informationen zum Absender der Nachricht zurück.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Empfängt Daten und gibt zusätzliche Informationen zum Absender der Nachricht zurück.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Empfängt Daten und gibt zusätzliche Informationen zum Absender der Nachricht zurück.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Empfängt Daten und gibt zusätzliche Informationen zum Absender der Nachricht zurück.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs
Quelle:
Socket.cs

Beginnt mit dem asynchronen Empfangen der angegebenen Anzahl von Daten an den angegebenen Speicherort im Datenpuffer mithilfe der angegebenen SocketFlagsDaten und speichert die Endpunkt- und Paketinformationen.

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

Parameter

e
SocketAsyncEventArgs

Das SocketAsyncEventArgs Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.

Gibt zurück

true wenn der E/A-Vorgang aussteht. Das Completed Ereignis für den e Parameter wird nach Abschluss des Vorgangs ausgelöst.

false wenn der E/A-Vorgang synchron abgeschlossen wurde. In diesem Fall wird das Completed Ereignis für den e Parameter nicht ausgelöst, und das e als Parameter übergebene Objekt kann sofort untersucht werden, nachdem der Methodenaufruf zurückgegeben wird, um das Ergebnis des Vorgangs abzurufen.

Ausnahmen

Der RemoteEndPoint Wert darf nicht null sein.

Das Socket wurde geschlossen.

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

Hinweise

Die ReceiveMessageFromAsync Methode wird hauptsächlich verwendet, um Nachrichtendaten in einem verbindungslosen Socket zu empfangen. Die lokale Adresse des Sockets muss bekannt sein. Diese Methode kann nur mit Datagrammen und rohen Sockets verwendet werden. Der Socket muss mit dem Sockettyp initialisiert werden, der auf Dgram oder Raw vor dem Aufrufen dieser Methode festgelegt ist. Dies kann erfolgen, wenn der Socket mithilfe Socketvon .

Der Aufrufer muss die SocketAsyncEventArgs.RemoteEndPoint Eigenschaft auf einen EndPoint von demselben Typ festlegen wie der Endpunkt des Remotehosts. Die Eigenschaft wird beim erfolgreichen Empfang an den tatsächlichen Remoteendpunkt aktualisiert.

Die folgenden Eigenschaften und Ereignisse für das System.Net.Sockets.SocketAsyncEventArgs Objekt sind erforderlich, um diese Methode erfolgreich aufzurufen:

Der Aufrufer kann die SocketAsyncEventArgs.UserToken Eigenschaft auf ein beliebiges Benutzerstatusobjekt festlegen, das vor dem Aufrufen der ReceiveMessageFromAsync Methode gewünscht wird, sodass die Informationen in der Rückrufmethode abgerufen werden können. Wenn der Rückruf mehr Informationen als ein einzelnes Objekt benötigt, kann eine kleine Klasse erstellt werden, um die anderen erforderlichen Statusinformationen als Member zu speichern.

Für nachrichtenorientierte Sockets wird eine eingehende Nachricht bis zur Gesamtgröße des Puffers in den Puffer eingefügt. Die Eigenschaften bestimmen, wo im Puffer die Daten platziert werden, und die Datenmenge.The SocketAsyncEventArgs.Count properties SocketAsyncEventArgs.Offset determine where in the buffer the data is placed and the amount of data.

Die ReceiveMessageFromAsync Methode legt die PacketInformation Socketoption automatisch auf true das erste Mal fest, wenn sie für einen bestimmten SocketAufruf aufgerufen wird. Das Objekt ist jedoch nur für Pakete gültig, die auf dem lokalen Computer ankommen, IPPacketInformation nachdem die Socketoption festgelegt wurde. Wenn ein Socket pakete zwischen dem Zeitpunkt der Bindung des Sockets an einen lokalen Endpunkt (explizit durch die Bind Methode oder implizit durch einen der ConnectMethoden , ConnectAsync, SendTooder SendToAsync Methoden) und dem ersten Aufruf der Methode gesendet wird, führt der ReceiveMessageFromAsync Aufruf der ReceiveMessageFromAsync Methode zu ungültigen IPPacketInformation Objekten für diese Pakete.

Um sicherzustellen, dass alle IPPacketInformation Objekte gültig sind, sollte eine Anwendung die PacketInformation Socketoptiontrue festlegen, bevor sie mit der SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) Methode an einen lokalen Endpunkt gebunden wird.

Eine Anwendung kann die resultierenden IPPacketInformation Objekte untersuchen, wenn sie wissen müssen, ob das Datagramm mit einer Unicast-, Multicast- oder Übertragungsadresse gesendet wurde.

Weitere Informationen

Gilt für:

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs

Empfängt Daten und gibt zusätzliche Informationen zum Absender der Nachricht zurück.

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)

Parameter

buffer
ArraySegment<Byte>

Der Puffer für die empfangenen Daten.

remoteEndPoint
EndPoint

Ein Endpunkt desselben Typs wie der Endpunkt des Remotehosts.

Gibt zurück

Eine asynchrone Aufgabe, die die SocketReceiveMessageFromResult Anzahl der empfangenen Bytes und zusätzliche Informationen zum sendenden Host enthält.

Ausnahmen

Das Socket Objekt wurde geschlossen.

remoteEndPoint ist null.

Sie müssen die Bind-Methode aufrufen, bevor Sie diesen Vorgang ausführen.

Gilt für:

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs

Empfängt Daten und gibt zusätzliche Informationen zum Absender der Nachricht zurück.

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)

Parameter

buffer
ArraySegment<Byte>

Der Puffer für die empfangenen Daten.

socketFlags
SocketFlags

Eine bitweise Kombination aus SocketFlags-Werten, die beim Empfangen der Daten verwendet werden.

remoteEndPoint
EndPoint

Ein Endpunkt desselben Typs wie der Endpunkt des Remotehosts.

Gibt zurück

Eine asynchrone Aufgabe, die die SocketReceiveMessageFromResult Anzahl der empfangenen Bytes und zusätzliche Informationen zum sendenden Host enthält.

Ausnahmen

Das Socket Objekt wurde geschlossen.

remoteEndPoint ist null.

Sie müssen die Bind-Methode aufrufen, bevor Sie diesen Vorgang ausführen.

Gilt für:

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs

Empfängt Daten und gibt zusätzliche Informationen zum Absender der Nachricht zurück.

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)

Parameter

buffer
Memory<Byte>

Der Puffer für die empfangenen Daten.

remoteEndPoint
EndPoint

Ein Endpunkt desselben Typs wie der Endpunkt des Remotehosts.

cancellationToken
CancellationToken

Ein Abbruchtoken, das verwendet werden kann, um den asynchronen Vorgang zu signalisieren, sollte abgebrochen werden.

Gibt zurück

Eine asynchrone Aufgabe, die die SocketReceiveMessageFromResult Anzahl der empfangenen Bytes und zusätzliche Informationen zum sendenden Host enthält.

Ausnahmen

Das Socket Objekt wurde geschlossen.

remoteEndPoint ist null.

Sie müssen die Bind-Methode aufrufen, bevor Sie diesen Vorgang ausführen.

Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.

Gilt für:

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs

Empfängt Daten und gibt zusätzliche Informationen zum Absender der Nachricht zurück.

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)

Parameter

buffer
Memory<Byte>

Der Puffer für die empfangenen Daten.

socketFlags
SocketFlags

Eine bitweise Kombination aus SocketFlags-Werten, die beim Empfangen der Daten verwendet werden.

remoteEndPoint
EndPoint

Ein Endpunkt desselben Typs wie der Endpunkt des Remotehosts.

cancellationToken
CancellationToken

Ein Abbruchtoken, das verwendet werden kann, um den asynchronen Vorgang zu signalisieren, sollte abgebrochen werden.

Gibt zurück

Eine asynchrone Aufgabe, die die SocketReceiveMessageFromResult Anzahl der empfangenen Bytes und zusätzliche Informationen zum sendenden Host enthält.

Ausnahmen

Das Socket Objekt wurde geschlossen.

remoteEndPoint ist null.

Sie müssen die Bind-Methode aufrufen, bevor Sie diesen Vorgang ausführen.

Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.

Gilt für: