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
| Name | Beschreibung |
|---|---|
| SendToAsync(SocketAsyncEventArgs) |
Sendet Daten asynchron an einen bestimmten 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 mithilfe des angegebenen SocketFlagsEndpunkts an einen bestimmten Endpunkt. |
SendToAsync(SocketAsyncEventArgs)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Sendet Daten asynchron an einen bestimmten 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 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
Der RemoteEndPoint Wert darf nicht null sein.
Ein Socketvorgang wurde bereits mit dem SocketAsyncEventArgs im e Parameter angegebenen Objekt ausgeführt.
Das Socket wurde geschlossen.
Das angegebene Protokoll ist verbindungsorientiert, aber die Socket Verbindung ist 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 Aufrufen der SendToAsync Methode können Sie Daten in einem separaten Ausführungsthread senden. Obwohl diese Methode für verbindungslose Protokolle vorgesehen ist, SendToAsync funktioniert sie sowohl mit verbindungslosen als auch verbindungsorientierten Protokollen.
Um über den Abschluss benachrichtigt zu werden, müssen Sie eine Rückrufmethode erstellen, die den EventHandler<SocketAsyncEventArgs-Delegaten> 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 Benutzerstatusobjekt 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, um die anderen erforderlichen Statusinformationen als Member zu speichern.
Wenn Sie ein verbindungsorientiertes Protokoll verwenden, müssen Sie zuerst das Accept, , , BeginAccept, BeginConnect, oder ConnectConnectAsync die Methode AcceptAsyncaufrufen. Andernfalls SendToAsync wird ein SocketException. Bei Verwendung eines verbindungsorientierten Protokolls ignoriert die Methode die SendToAsyncSocketAsyncEventArgs.RemoteEndPoint Eigenschaft und sendet Daten an die System.Net.EndPoint in der Accept, AcceptAsync, , BeginAccept, BeginConnect, , Connectoder ConnectAsync Methode.
Wenn Sie ein verbindungsloses Protokoll verwenden, müssen Sie vor dem Aufrufen SendToAsynckeinen Standard-Remotehost mit dem BeginConnect, Connectoder ConnectAsync der Methode einrichten. Sie müssen dies nur tun, wenn Sie die BeginSend Methoden aufrufen SendAsync möchten. Wenn Sie die , oder Methode vor dem Aufrufen SendToAsyncaufrufen, überschreibt die SocketAsyncEventArgs.RemoteEndPoint Eigenschaft den angegebenen Standard-Remotehost nur für diesen Sendevorgang.ConnectAsyncConnectBeginConnect Sie sind auch nicht erforderlich, um die Bind Methode aufzurufen. In diesem Fall weist der zugrunde liegende Dienstanbieter die am besten geeignete IP-Adresse und Portnummer für das lokale Netzwerk zu. Verwenden Sie eine Portnummer null, wenn der zugrunde liegende Dienstanbieter einen kostenlosen Port auswählen soll. Wenn Sie die zugewiesene ip-Adresse und Portnummer des lokalen Netzwerks identifizieren müssen, können Sie die LocalEndPoint Eigenschaft verwenden, nachdem das SocketAsyncEventArgs.Completed Ereignis signalisiert wurde und die zugehörigen Stellvertretungen aufgerufen werden.
Wenn Sie Daten an eine Übertragungsadresse senden möchten, müssen Sie zuerst die SetSocketOption Methode aufrufen und die Socketoption auf SocketOptionName.Broadcast "true" festlegen. Sie müssen auch sicherstellen, dass die Größe des 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 ein 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 SocketException. Der erfolgreiche Abschluss einer SendToAsync Methode gibt nicht an, 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
- 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.
Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
Das Socket wurde geschlossen.
Gilt für:
SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- 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 aus 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.
Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
Das Socket wurde geschlossen.
Gilt für:
SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- 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.
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:
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- 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 aus 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.
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:
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
- Quelle:
- Socket.Tasks.cs
Sendet Daten mithilfe des angegebenen SocketFlagsEndpunkts an einen bestimmten Endpunkt.
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
Dies SocketAddress stellt das Ziel für die Daten dar.
- 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.
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.