Socket.ReceiveAsync 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
ReceiveAsync(ArraySegment<Byte>) |
Empfängt Daten aus einem verbundenen Socket. |
ReceiveAsync(IList<ArraySegment<Byte>>) |
Empfängt Daten aus einem verbundenen Socket. |
ReceiveAsync(SocketAsyncEventArgs) |
Startet eine asynchrone Anforderung, um Daten von einem verbundenen Socket-Objekt zu empfangen. |
ReceiveAsync(ArraySegment<Byte>, SocketFlags) |
Empfängt Daten aus einem verbundenen Socket. |
ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags) |
Empfängt Daten aus einem verbundenen Socket. |
ReceiveAsync(Memory<Byte>, CancellationToken) |
Empfängt Daten aus einem verbundenen Socket. |
ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken) |
Empfängt Daten aus einem verbundenen Socket. |
ReceiveAsync(ArraySegment<Byte>)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Empfängt Daten aus einem verbundenen Socket.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer);
member this.ReceiveAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)
Parameter
- buffer
- ArraySegment<Byte>
Der Puffer für die empfangenen Daten.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der empfangenen Bytes abgeschlossen wird.
Ausnahmen
Der Socket wurde geschlossen.
Fehler beim Versuch, auf den Socket zuzugreifen.
Gilt für:
ReceiveAsync(IList<ArraySegment<Byte>>)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Empfängt Daten aus einem verbundenen Socket.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)
Parameter
- buffers
- IList<ArraySegment<Byte>>
Eine Liste der Puffer für die empfangenen Daten.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der empfangenen Bytes abgeschlossen wird.
Ausnahmen
Der buffers
-Parameter war null.
Der Socket wurde geschlossen.
Fehler beim Versuch, auf den Socket zuzugreifen.
Hinweise
Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Receive(IList<ArraySegment<Byte>>).
Gilt für:
ReceiveAsync(SocketAsyncEventArgs)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Startet eine asynchrone Anforderung, um Daten von einem verbundenen Socket-Objekt zu empfangen.
public:
bool ReceiveAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveAsync (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
Ein Argument war ungültig. Die Buffer-Eigenschaft oder BufferList-Eigenschaft des e
-Parameters muss auf gültige Puffer verweisen. Eine dieser Eigenschaften kann festgelegt werden, nicht jedoch beide gleichzeitig.
Es wird bereits ein Socketvorgang mit dem im e
-Parameter angegebenen SocketAsyncEventArgs-Objekt ausgeführt.
Der Socket wurde geschlossen.
Fehler beim Versuch, auf den Socket zuzugreifen.
Hinweise
Die ReceiveAsync -Methode wird für verbundene Sockets oder gebundene verbindungslose Sockets verwendet und zum Lesen eingehender Daten verwendet. Die lokale Adresse des Sockets muss bekannt sein.
Bei gebundenen verbindungslosen Sockets schränkt diese Funktion die Adressen ein, von denen empfangene Nachrichten akzeptiert werden. Die Funktion gibt nur Nachrichten von der in der Verbindung angegebenen Remoteadresse zurück. Nachrichten von anderen Adressen werden automatisch verworfen.
Die SocketAsyncEventArgs.SocketFlags -Eigenschaft des e
Parameters stellt dem Window Sockets-Dienstanbieter zusätzliche Informationen zur Leseanforderung bereit. Weitere Informationen zum Verwenden dieses Typs finden Sie unter System.Net.Sockets.SocketFlags.
Die folgenden Eigenschaften und Ereignisse für das System.Net.Sockets.SocketAsyncEventArgs -Objekt sind erforderlich, um diese Methode erfolgreich aufzurufen:
SocketAsyncEventArgs.Buffer oder SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count Wenn SocketAsyncEventArgs.Buffer festgelegt ist
SocketAsyncEventArgs.Offset Wenn SocketAsyncEventArgs.Buffer festgelegt ist
Der Aufrufer kann die SocketAsyncEventArgs.UserToken -Eigenschaft auf ein beliebiges Benutzerzustandsobjekt festlegen, bevor die ReceiveAsync -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 Bytestreamsockets werden eingehende Daten in den Puffer eingefügt, bis der Puffer gefüllt, die Verbindung geschlossen oder die intern gepufferten Daten erschöpft sind.
Bei nachrichtenorientierten Sockets wird eine eingehende Nachricht bis zur Gesamtgröße des dem Parameter zugeordneten Puffers in den e
Puffer eingefügt. Wenn die Nachricht größer als der Puffer ist, wird der Puffer mit dem ersten Teil der Nachricht gefüllt.
Bei verbindungsorientierten Sockets kann die ReceiveAsync -Methode die ordnungsgemäße Beendigung der virtuellen Verbindung auf eine von zwei Arten angeben, die davon abhängen, ob der Socket bytestream- oder nachrichtenorientiert ist. Bei Bytedatenströmen bedeutet das Lesen von null Bytes einen ordnungsgemäßen Abschluss, und es werden keine Bytes mehr gelesen. Für nachrichtenorientierte Sockets, bei denen eine Null-Byte-Nachricht häufig zulässig ist, wird ein SocketException verwendet, bei dem der SocketAsyncEventArgs.SocketError auf den nativen Winsock WSAEDISCON-Fehlercode (10101) festgelegt ist, um einen ordnungsgemäßen Abschluss anzuzeigen. In jedem Fall gibt ein SocketException mit dem SocketAsyncEventArgs.SocketError auf den nativen Winsock WSAECONNRESET-Fehlercode (10054) festgelegten Fehlercode an, dass ein abbruchfähiges Schließen aufgetreten ist.
Weitere Informationen
Gilt für:
ReceiveAsync(ArraySegment<Byte>, SocketFlags)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Empfängt Daten aus einem verbundenen Socket.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)
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.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der empfangenen Bytes abgeschlossen wird.
Ausnahmen
Der Socket wurde geschlossen.
Fehler beim Versuch, auf den Socket zuzugreifen.
Gilt für:
ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Empfängt Daten aus einem verbundenen Socket.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)
Parameter
- buffers
- IList<ArraySegment<Byte>>
Eine Liste der Puffer für die empfangenen Daten.
- socketFlags
- SocketFlags
Eine bitweise Kombination von SocketFlags-Werten, die beim Empfangen der Daten verwendet wird.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der empfangenen Bytes abgeschlossen wird.
Ausnahmen
Der buffers
-Parameter war null.
Der Socket wurde geschlossen.
Fehler beim Versuch, auf den Socket zuzugreifen.
Hinweise
Diese Methode speichert in der Aufgabe, die alle Nichtverwendungsausnahmen zurückgibt, die die synchrone Entsprechung der Methode auslösen kann. Wenn eine Ausnahme in der zurückgegebenen Aufgabe gespeichert wird, wird diese Ausnahme ausgelöst, wenn die Aufgabe erwartet wird. Verwendungsausnahmen wie ArgumentExceptionwerden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie unter ausnahmen, die von ausgelöst werden Receive(IList<ArraySegment<Byte>>, SocketFlags).
Gilt für:
ReceiveAsync(Memory<Byte>, CancellationToken)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Empfängt Daten aus einem verbundenen Socket.
public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parameter
- cancellationToken
- CancellationToken
Ein Abbruchtoken, das zum Abbrechen des asynchronen Vorgangs verwendet werden kann.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der empfangenen Bytes abgeschlossen wird.
Ausnahmen
Der Socket wurde geschlossen.
Fehler beim Versuch, auf den Socket zuzugreifen.
Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.
Gilt für:
ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Empfängt Daten aus einem verbundenen Socket.
public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parameter
- socketFlags
- SocketFlags
Eine bitweise Kombination von SocketFlags-Werten, die beim Empfangen der Daten verwendet wird.
- cancellationToken
- CancellationToken
Ein Abbruchtoken, das zum Abbrechen des asynchronen Vorgangs verwendet werden kann.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der empfangenen Bytes abgeschlossen wird.
Ausnahmen
Der Socket wurde geschlossen.
Fehler beim Versuch, auf den Socket zuzugreifen.
Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.