Socket.SendAsync 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
SendAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Sendet Daten an einen verbundenen Socket. |
SendAsync(IList<ArraySegment<Byte>>, SocketFlags) |
Sendet Daten an einen verbundenen Socket. |
SendAsync(ArraySegment<Byte>, SocketFlags) |
Sendet Daten an einen verbundenen Socket. |
SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken) |
Sendet Daten an einen verbundenen Socket. |
SendAsync(IList<ArraySegment<Byte>>) |
Sendet Daten an einen verbundenen Socket. |
SendAsync(ArraySegment<Byte>) |
Sendet Daten an einen verbundenen Socket. |
SendAsync(SocketAsyncEventArgs) |
Sendet Daten asynchron an ein verbundenes Socket-Objekt. |
SendAsync(ReadOnlyMemory<Byte>, CancellationToken)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Sendet Daten an einen verbundenen Socket.
public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parameter
- buffer
- ReadOnlyMemory<Byte>
Der Puffer für die zu sendenden Daten.
- cancellationToken
- CancellationToken
Ein Abbruchtoken, das zum Abbrechen des asynchronen Vorgangs verwendet werden kann.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der gesendeten Bytes abgeschlossen wird.
Ausnahmen
Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.
Gilt für:
SendAsync(IList<ArraySegment<Byte>>, SocketFlags)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Sendet Daten an einen verbundenen Socket.
public:
System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (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 zu sendenden Daten.
- socketFlags
- SocketFlags
Eine bitweise Kombination von SocketFlags-Werten, die beim Senden der Daten verwendet wird.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der gesendeten Bytes abgeschlossen wird.
Ausnahmen
buffers
ist null
.
Fehler beim Versuch, auf den Socket zuzugreifen.
Der Socket wurde geschlossen.
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 Send(IList<ArraySegment<Byte>>, SocketFlags).
Gilt für:
SendAsync(ArraySegment<Byte>, SocketFlags)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Sendet Daten an einen verbundenen Socket.
public:
System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)
Parameter
- buffer
- ArraySegment<Byte>
Der Puffer für die zu sendenden Daten.
- socketFlags
- SocketFlags
Eine bitweise Kombination von SocketFlags-Werten, die beim Senden der Daten verwendet wird.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der gesendeten Bytes abgeschlossen wird.
Ausnahmen
Fehler beim Versuch, auf den Socket zuzugreifen.
Der Socket wurde geschlossen.
Gilt für:
SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Sendet Daten an einen verbundenen Socket.
public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parameter
- buffer
- ReadOnlyMemory<Byte>
Der Puffer für die zu sendenden Daten.
- socketFlags
- SocketFlags
Eine bitweise Kombination von SocketFlags-Werten, die beim Senden 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 gesendeten Bytes abgeschlossen wird.
Ausnahmen
Fehler beim Versuch, auf den Socket zuzugreifen.
Der Socket wurde geschlossen.
Das Abbruchtoken wurde abgebrochen. Diese Ausnahme wird in der zurückgegebenen Aufgabe gespeichert.
Gilt für:
SendAsync(IList<ArraySegment<Byte>>)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Sendet Daten an einen verbundenen Socket.
public:
System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> SendAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)
Parameter
- buffers
- IList<ArraySegment<Byte>>
Eine Liste der Puffer für die zu sendenden Daten.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der gesendeten Bytes abgeschlossen wird.
Ausnahmen
buffers
ist null
.
Fehler beim Versuch, auf den Socket zuzugreifen.
Der Socket wurde geschlossen.
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 Send(IList<ArraySegment<Byte>>).
Gilt für:
SendAsync(ArraySegment<Byte>)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Sendet Daten an einen verbundenen Socket.
public:
System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> SendAsync (ArraySegment<byte> buffer);
member this.SendAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)
Parameter
- buffer
- ArraySegment<Byte>
Der Puffer für die zu sendenden Daten.
Gibt zurück
Eine asynchrone Aufgabe, die mit der Anzahl der gesendeten Bytes abgeschlossen wird.
Ausnahmen
Fehler beim Versuch, auf den Socket zuzugreifen.
Der Socket wurde geschlossen.
Gilt für:
SendAsync(SocketAsyncEventArgs)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Sendet Daten asynchron an ein verbundenes Socket-Objekt.
public:
bool SendAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendAsync (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
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.
Der Socket ist noch nicht verbunden oder wurde nicht über eine Accept()-AcceptAsync(SocketAsyncEventArgs)- oder BeginAccept-Methode abgerufen.
Hinweise
Die SendAsync -Methode wird verwendet, um ausgehende Daten aus einem oder mehreren Puffern auf einen verbindungsorientierten Socket zu schreiben. Diese Methode kann jedoch auch für verbindungslose Sockets verwendet werden, die einen Remotehost für einen Verbindungsvorgang angegeben haben.
Die SendAsync -Methode startet einen asynchronen Sendevorgang an den Remotehost, der in der AcceptMethode , AcceptAsync, BeginAcceptBeginConnect, Connectoder ConnectAsync eingerichtet wurde.
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 SendAsync -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.
Die SendAsync -Methode löst eine Ausnahme aus, wenn Sie nicht zuerst , AcceptAsync, BeginAcceptBeginConnect, Connectoder ConnectAsyncaufrufenAccept.
Wenn Sie die SendAsync -Methode aufrufen, können Sie Daten in einem separaten Ausführungsthread senden.
Für nachrichtenorientierte Sockets darf die maximale Nachrichtengröße des zugrunde liegenden Windows-Sockets-Dienstanbieters nicht überschritten werden. Wenn die Daten zu lang sind, um sie atomar über den zugrunde liegenden Dienstanbieter zu übergeben, werden keine Daten übertragen, und die SendAsync Methode löst eine aus SocketException , wobei der SocketAsyncEventArgs.SocketError auf den nativen Winsock WSAEMSGSIZE-Fehlercode (10040) festgelegt ist.
Beachten Sie, dass der erfolgreiche Abschluss der SendAsync Methode nicht darauf hinweist, dass die Daten erfolgreich übermittelt wurden.