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