Freigeben über


Socket.SendToAsync Methode

Definition

Überlädt

SendToAsync(SocketAsyncEventArgs)

Sendet asynchron Daten an einen angegebenen Remotehost.

SendToAsync(ArraySegment<Byte>, EndPoint)

Sendet Daten an den angegebenen Remotehost.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Sendet Daten an den angegebenen Remotehost.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Sendet Daten an den angegebenen Remotehost.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Sendet Daten an den angegebenen Remotehost.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Sendet Daten an einen bestimmten Endpunkt unter Verwendung der angegebenen SocketFlags.

SendToAsync(SocketAsyncEventArgs)

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

Sendet asynchron Daten an einen angegebenen Remotehost.

public:
 bool SendToAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendToAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendToAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendToAsync (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 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.

Es wird bereits ein Socketvorgang mit dem im e-Parameter angegebenen SocketAsyncEventArgs-Objekt ausgeführt.

Der Socket wurde geschlossen.

Das angegebene Protokoll ist verbindungsorientiert, aber der Socket wurde noch nicht verbunden.

Hinweise

Die SendToAsync -Methode startet einen asynchronen Sendevorgang an den Remotehost, der in der SocketAsyncEventArgs.RemoteEndPoint Eigenschaft des e Parameters angegeben ist. Durch Das Aufrufen der SendToAsync -Methode können Sie Daten innerhalb eines separaten Ausführungsthreads senden. Obwohl diese Methode für verbindungslose Protokolle vorgesehen ist, SendToAsync funktioniert sie sowohl mit verbindungslosen als auch mit verbindungsorientierten Protokollen.

Um über den Abschluss benachrichtigt zu werden, müssen Sie eine Rückrufmethode erstellen, die den EventHandler-Delegaten<SocketAsyncEventArgs> implementiert und den Rückruf an das SocketAsyncEventArgs.Completed Ereignis anfügen.

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, das vor dem Aufrufen der SendToAsync 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, die die anderen erforderlichen Zustandsinformationen als Member enthält.

Wenn Sie ein verbindungsorientiertes Protokoll verwenden, müssen Sie zuerst die AcceptMethode , , AcceptAsync, BeginAcceptBeginConnectoder ConnectConnectAsync aufrufen. Andernfalls SendToAsync wird ein SocketExceptionausgelöst. Bei Verwendung eines verbindungsorientierten Protokolls ignoriert die SendToAsync -Methode die SocketAsyncEventArgs.RemoteEndPoint -Eigenschaft und sendet Daten an die in , System.Net.EndPointAcceptAsyncAccept, BeginAccept, BeginConnect, Connectoder ConnectAsync festgelegte -Methode.

Wenn Sie ein verbindungsloses Protokoll verwenden, müssen Sie keinen Standard-Remotehost mit der BeginConnect- Connectoder ConnectAsync -Methode einrichten, bevor Sie aufrufen SendToAsync. Sie müssen dies nur tun, wenn Sie die BeginSend -Methode oder SendAsync aufrufen möchten. Wenn Sie die BeginConnect- oder ConnectConnectAsync -Methode vor dem Aufrufen SendToAsyncaufrufen, überschreibt die SocketAsyncEventArgs.RemoteEndPoint -Eigenschaft den angegebenen Standard-Remotehost nur für diesen Sendevorgang. Sie müssen die Bind Methode auch nicht aufrufen. In diesem Fall weist der zugrunde liegende Dienstanbieter die am besten geeignete lokale Netzwerk-IP-Adresse und Portnummer zu. Verwenden Sie die Portnummer 0, wenn der zugrunde liegende Dienstanbieter einen freien Port auswählen soll. Wenn Sie die zugewiesene lokale Netzwerk-IP-Adresse und Portnummer identifizieren müssen, können Sie die LocalEndPoint -Eigenschaft verwenden, nachdem das SocketAsyncEventArgs.Completed Ereignis signalisiert und die zugeordneten Delegaten aufgerufen werden.

Wenn Sie Daten an eine Broadcastadresse senden möchten, müssen Sie zuerst die SetSocketOption Methode aufrufen und die Socketoption für SocketOptionName.Broadcast auf true festlegen. Außerdem müssen Sie sicherstellen, dass die Größe Ihres Puffers die maximale Paketgröße des zugrunde liegenden Dienstanbieters nicht überschreitet. Wenn dies der Fall ist, wird das Datagramm nicht gesendet und SendToAsync löst einen aus SocketException.

Wenn Sie das DontRoute-Flag in der SocketAsyncEventArgs.SocketFlags Eigenschaft angeben, werden die gesendeten Daten nicht weitergeleitet.

Bei nachrichtenorientierten Sockets muss darauf geachtet werden, dass die maximale Nachrichtengröße des zugrunde liegenden Transports nicht überschritten wird. Wenn die Größe des Puffers die maximale Paketgröße des zugrunde liegenden Dienstanbieters überschreitet, wird das Datagramm nicht gesendet und SendToAsync löst ein aus SocketException. Der erfolgreiche Abschluss einer SendToAsync Methode bedeutet nicht, dass die Daten erfolgreich übermittelt wurden.

Weitere Informationen

Gilt für:

SendToAsync(ArraySegment<Byte>, EndPoint)

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

Sendet Daten an den angegebenen Remotehost.

public:
 System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), remoteEP As EndPoint) As Task(Of Integer)

Parameter

buffer
ArraySegment<Byte>

Der Puffer für die zu sendenden Daten.

remoteEP
EndPoint

Der Remotehost, an den die Daten gesendet werden sollen.

Gibt zurück

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

Ausnahmen

remoteEP ist null.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Gilt für:

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

Sendet Daten an den angegebenen Remotehost.

public:
 System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint) 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 werden.

remoteEP
EndPoint

Der Remotehost, an den die Daten gesendet werden sollen.

Gibt zurück

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

Ausnahmen

remoteEP ist null.

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Gilt für:

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

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

Sendet Daten an den angegebenen Remotehost.

public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), remoteEP As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parameter

buffer
ReadOnlyMemory<Byte>

Der Puffer für die zu sendenden Daten.

remoteEP
EndPoint

Der Remotehost, an den die Daten gesendet werden sollen.

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

remoteEP ist null.

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:

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

Sendet Daten an den angegebenen Remotehost.

public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint, 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 werden.

remoteEP
EndPoint

Der Remotehost, an den die Daten gesendet werden sollen.

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

remoteEP ist null.

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:

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

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

Sendet Daten an einen bestimmten Endpunkt unter Verwendung der angegebenen SocketFlags.

public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, socketAddress As SocketAddress, 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 werden.

socketAddress
SocketAddress

Der SocketAddress, der das Ziel der Daten darstellt.

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

socketAddress ist null.

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: