Socket.ReceiveMessageFromAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
ReceiveMessageFromAsync(SocketAsyncEventArgs) |
Beginnt unter Verwendung der angegebenen SocketFlags den asynchronen Empfang der angegebenen Anzahl von Datenbytes an der angegebenen Position im Datenpuffer und speichert die Endpunkt- und Paketinformationen. |
ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint) |
Empfängt Daten und gibt zusätzliche Informationen über den Absender der Nachricht zurück. |
ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Empfängt Daten und gibt zusätzliche Informationen über den Absender der Nachricht zurück. |
ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken) |
Empfängt Daten und gibt zusätzliche Informationen über den Absender der Nachricht zurück. |
ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Empfängt Daten und gibt zusätzliche Informationen über den Absender der Nachricht zurück. |
ReceiveMessageFromAsync(SocketAsyncEventArgs)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Beginnt unter Verwendung der angegebenen SocketFlags den asynchronen Empfang der angegebenen Anzahl von Datenbytes an der angegebenen Position im Datenpuffer 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
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 dem 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 als Parameter übergebene e
-Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.
Ausnahmen
RemoteEndPoint darf nicht NULL sein.
Der Socket wurde geschlossen.
Fehler beim Versuch, auf den Socket zuzugreifen.
Hinweise
Die ReceiveMessageFromAsync -Methode wird hauptsächlich verwendet, um Nachrichtendaten auf einem verbindungslosen Socket zu empfangen. Die lokale Adresse des Sockets muss bekannt sein. Diese Methode kann nur mit Datagrammen und Rohsockets verwendet werden. Der Socket muss mit dem Sockettyp initialisiert werden, der auf Dgram oder Raw festgelegt ist, bevor diese Methode aufgerufen wird. Dies kann erfolgen, wenn der Socket mit Socketerstellt wird.
Der Aufrufer muss die SocketAsyncEventArgs.RemoteEndPoint -Eigenschaft auf einen EndPoint vom gleichen Typ wie der Endpunkt des Remotehosts festlegen. 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 Benutzerzustandsobjekt festlegen, bevor die ReceiveMessageFromAsync -Methode aufgerufen 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, die die anderen erforderlichen Zustandsinformationen als Member enthält.
Bei nachrichtenorientierten Sockets wird eine eingehende Nachricht bis zur Gesamtgröße des Puffers in den Puffer eingefügt. Die SocketAsyncEventArgs.Count Eigenschaften und SocketAsyncEventArgs.Offset bestimmen, wo sich die Daten im Puffer befinden, und die Datenmenge.
Die ReceiveMessageFromAsync -Methode legt die PacketInformation Socketoption automatisch auf true
das erste Mal fest, wenn sie für eine bestimmte Socketaufgerufen wird. Das -Objekt ist jedoch nur für Pakete gültig, IPPacketInformation die auf dem lokalen Computer eingehen, nachdem die Socketoption festgelegt wurde. Wenn ein Socket Pakete zwischen dem Zeitpunkt gesendet wird, an den der Socket an einen lokalen Endpunkt gebunden ist (explizit durch die Bind -Methode oder implizit durch eine der ConnectMethoden , ConnectAsync, SendTooder SendToAsync ) und dem ersten Aufruf der -Methode, führen Aufrufe der ReceiveMessageFromAsync -Methode zu ReceiveMessageFromAsync ungültigen IPPacketInformation Objekten für diese Pakete.
Um sicherzustellen, dass alle IPPacketInformation Objekte gültig sind, sollte eine Anwendung die PacketInformation Socketoption auftrue
festlegen, bevor sie mithilfe der SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) -Methode an einen lokalen Endpunkt gebunden wird.
Eine Anwendung kann die resultierenden IPPacketInformation Objekte untersuchen, wenn sie wissen muss, ob das Datagramm mit einer Unicast-, Multicast- oder Broadcastadresse gesendet wurde.
Weitere Informationen
Gilt für:
ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Empfängt Daten und gibt zusätzliche Informationen über den 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 vom gleichen Typ wie der Endpunkt des Remotehosts.
Gibt zurück
Eine asynchrone Aufgabe, die mit einer SocketReceiveMessageFromResult abgeschlossen wird, die die Anzahl der empfangenen Bytes und zusätzliche Informationen über den 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
Empfängt Daten und gibt zusätzliche Informationen über den 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 von SocketFlags-Werten, die beim Empfangen der Daten verwendet wird.
- remoteEndPoint
- EndPoint
Ein Endpunkt vom gleichen Typ wie der Endpunkt des Remotehosts.
Gibt zurück
Eine asynchrone Aufgabe, die mit einer SocketReceiveMessageFromResult abgeschlossen wird, die die Anzahl der empfangenen Bytes und zusätzliche Informationen über den 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
Empfängt Daten und gibt zusätzliche Informationen über den 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
- remoteEndPoint
- EndPoint
Ein Endpunkt vom gleichen Typ wie der Endpunkt des Remotehosts.
- cancellationToken
- CancellationToken
Ein Abbruchtoken, das verwendet werden kann, um zu signalisieren, dass der asynchrone Vorgang abgebrochen werden sollte.
Gibt zurück
Eine asynchrone Aufgabe, die mit einer SocketReceiveMessageFromResult abgeschlossen wird, die die Anzahl der empfangenen Bytes und zusätzliche Informationen über den 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
Empfängt Daten und gibt zusätzliche Informationen über den 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
- socketFlags
- SocketFlags
Eine bitweise Kombination von SocketFlags-Werten, die beim Empfangen der Daten verwendet wird.
- remoteEndPoint
- EndPoint
Ein Endpunkt vom gleichen Typ wie der Endpunkt des Remotehosts.
- cancellationToken
- CancellationToken
Ein Abbruchtoken, das verwendet werden kann, um zu signalisieren, dass der asynchrone Vorgang abgebrochen werden sollte.
Gibt zurück
Eine asynchrone Aufgabe, die mit einer SocketReceiveMessageFromResult abgeschlossen wird, die die Anzahl der empfangenen Bytes und zusätzliche Informationen über den 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.