Freigeben über


Socket.SendAsync Methode

Definition

Überlädt

Name Beschreibung
SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Sendet Daten in einem verbundenen Socket.

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

Sendet Daten in einem verbundenen Socket.

SendAsync(ArraySegment<Byte>, SocketFlags)

Sendet Daten in einem verbundenen Socket.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Sendet Daten in einem verbundenen Socket.

SendAsync(IList<ArraySegment<Byte>>)

Sendet Daten in einem verbundenen Socket.

SendAsync(ArraySegment<Byte>)

Sendet Daten in einem 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
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs

Sendet Daten in einem 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
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs

Sendet Daten in einem 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 aus SocketFlags-Werten, die beim Senden der Daten verwendet werden.

Gibt zurück

Eine asynchrone Aufgabe, die mit der Anzahl der gesendeten Bytes abgeschlossen wird.

Ausnahmen

buffers ist null.

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

Das Socket wurde geschlossen.

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nicht-Verwendungs-Ausnahmen zurückgibt, die das synchrone Gegenstück 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, z. B. ArgumentException, werden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie in den von Send(IList<ArraySegment<Byte>>, SocketFlags).

Gilt für:

SendAsync(ArraySegment<Byte>, SocketFlags)

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

Sendet Daten in einem 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 aus SocketFlags-Werten, die beim Senden der Daten verwendet werden.

Gibt zurück

Eine asynchrone Aufgabe, die mit der Anzahl der gesendeten Bytes abgeschlossen wird.

Ausnahmen

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

Das Socket wurde geschlossen.

Gilt für:

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

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

Sendet Daten in einem 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 aus SocketFlags-Werten, die beim Senden der Daten verwendet werden.

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

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

Das 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
Quelle:
Socket.Tasks.cs
Quelle:
Socket.Tasks.cs

Sendet Daten in einem 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.

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

Das Socket wurde geschlossen.

Hinweise

Diese Methode speichert in der Aufgabe, die alle Nicht-Verwendungs-Ausnahmen zurückgibt, die das synchrone Gegenstück 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, z. B. ArgumentException, werden weiterhin synchron ausgelöst. Informationen zu den gespeicherten Ausnahmen finden Sie in den von Send(IList<ArraySegment<Byte>>).

Gilt für:

SendAsync(ArraySegment<Byte>)

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

Sendet Daten in einem 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

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

Das Socket wurde geschlossen.

Gilt für:

SendAsync(SocketAsyncEventArgs)

Quelle:
Socket.cs
Quelle:
Socket.cs
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

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

Die Buffer Eigenschaften BufferList für den e Parameter müssen auf gültige Puffer verweisen. Eine oder die andere dieser Eigenschaften kann festgelegt werden, aber nicht beide gleichzeitig.

Ein Socketvorgang wurde bereits mit dem SocketAsyncEventArgs im e Parameter angegebenen Objekt ausgeführt.

Das Socket wurde geschlossen.

Die Socket Ist noch nicht verbunden oder wurde nicht über eine Accept(), AcceptAsync(SocketAsyncEventArgs)oder BeginAccept, Methode erhalten.

Hinweise

Die SendAsync Methode wird verwendet, um ausgehende Daten aus einem oder mehreren Puffern in einem 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 Accept, AcceptAsync, BeginAccept, , BeginConnect, oder ConnectConnectAsync Methode eingerichtet ist.

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

Die SendAsync Methode löst eine Ausnahme aus, wenn Sie nicht zuerst aufrufen Accept, , AcceptAsync, , BeginAcceptBeginConnect, Connectoder ConnectAsync.

Durch Aufrufen der SendAsync Methode 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 atomisch über den zugrunde liegenden Dienstanbieter zu übergeben, werden keine Daten übertragen, und die SendAsync Methode löst eine SocketException mit dem SocketAsyncEventArgs.SocketError Satz auf den systemeigenen Winsock WSAEMSGSIZE-Fehlercode (10040) aus.

Beachten Sie, dass der erfolgreiche Abschluss der SendAsync Methode nicht angibt, dass die Daten erfolgreich übermittelt wurden.

Weitere Informationen

Gilt für: