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