Socket.SendToAsync Méthode

Définition

Surcharges

SendToAsync(SocketAsyncEventArgs)

Envoie des données de façon asynchrone à un hôte distant spécifique.

SendToAsync(ArraySegment<Byte>, EndPoint)

Envoie des données à l’hôte distant spécifié.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Envoie des données à l’hôte distant spécifié.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Envoie des données à l’hôte distant spécifié.

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

Envoie des données à l’hôte distant spécifié.

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

Envoie des données à un point de terminaison spécifique à l'aide du SocketFlags spécifié.

SendToAsync(SocketAsyncEventArgs)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Envoie des données de façon asynchrone à un hôte distant spécifique.

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

Paramètres

e
SocketAsyncEventArgs

Objet SocketAsyncEventArgs à utiliser pour cette opération de socket asynchrone.

Retours

true si l’opération d’E/S est en attente. L'événement Completed sur le paramètre e sera déclenché une fois l'opération terminée.

false si l’opération d’E/S a été terminée de manière synchrone. Dans ce cas, l'événement Completed sur le paramètre e ne sera pas déclenché et l'objet e transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.

Exceptions

RemoteEndPoint ne peut pas être Null.

Une opération de socket utilisant l'objet SocketAsyncEventArgs spécifié dans le paramètre e spécifié était déjà en cours.

Le protocole spécifié est orienté connexion, mais le Socket n'est pas encore connecté.

Remarques

La SendToAsync méthode démarre une opération d’envoi asynchrone à l’hôte distant spécifié dans la SocketAsyncEventArgs.RemoteEndPoint propriété du e paramètre. L’appel de la SendToAsync méthode vous permet d’envoyer des données dans un thread d’exécution distinct. Bien que cette méthode soit destinée aux protocoles sans connexion, SendToAsync fonctionne avec les protocoles sans connexion et orientés connexion.

Pour être averti de l’achèvement, vous devez créer une méthode de rappel qui implémente le délégué EventHandler<SocketAsyncEventArgs> et attacher le rappel à l’événement SocketAsyncEventArgs.Completed .

Les propriétés et événements suivants sur l’objet System.Net.Sockets.SocketAsyncEventArgs sont nécessaires pour appeler cette méthode :

L’appelant peut définir la SocketAsyncEventArgs.UserToken propriété sur n’importe quel objet d’état utilisateur souhaité avant d’appeler la SendToAsync méthode, afin que les informations soient récupérables dans la méthode de rappel. Si le rappel a besoin de plus d’informations qu’un seul objet, une petite classe peut être créée pour contenir les autres informations d’état requises en tant que membres.

Si vous utilisez un protocole orienté connexion, vous devez d’abord appeler la Acceptméthode , AcceptAsync, BeginAccept, BeginConnect, Connectou ConnectAsync . Dans le cas contraire SendToAsync , lève un SocketException. Lors de l’utilisation d’un protocole orienté connexion, la SendToAsync méthode ignore la SocketAsyncEventArgs.RemoteEndPoint propriété et envoie des données à la System.Net.EndPoint méthode établie dans la Acceptméthode , AcceptAsync, BeginAcceptBeginConnect, Connect, ou ConnectAsync .

Si vous utilisez un protocole sans connexion, vous n’avez pas besoin d’établir un hôte distant par défaut avec la BeginConnectméthode , Connectou ConnectAsync avant d’appeler SendToAsync. Vous n’avez besoin d’effectuer cette opération que si vous avez l’intention d’appeler les BeginSend méthodes ou SendAsync . Si vous appelez la BeginConnectméthode , Connectou ConnectAsync avant d’appeler SendToAsync, la SocketAsyncEventArgs.RemoteEndPoint propriété remplace l’hôte distant par défaut spécifié pour cette opération d’envoi uniquement. Vous n’êtes pas non plus obligé d’appeler la Bind méthode. Dans ce cas, le fournisseur de services sous-jacent attribue l’adresse IP du réseau local et le numéro de port les plus appropriés. Utilisez un numéro de port de zéro si vous souhaitez que le fournisseur de services sous-jacent sélectionne un port gratuit. Si vous devez identifier l’adresse IP du réseau local et le numéro de port attribués, vous pouvez utiliser la propriété une fois l’événement LocalEndPointSocketAsyncEventArgs.Completed signalé et les délégués associés appelés.

Si vous souhaitez envoyer des données à une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et définir l’option de socket sur SocketOptionName.Broadcast true. Vous devez également vous assurer que la taille de votre mémoire tampon ne dépasse pas la taille de paquet maximale du fournisseur de services sous-jacent. Si c’est le cas, le datagramme n’est pas envoyé et SendToAsync lève un SocketException.

Si vous spécifiez l’indicateur DontRoute dans la SocketAsyncEventArgs.SocketFlags propriété, les données que vous envoyez ne seront pas routées.

Pour les sockets orientés message, il faut veiller à ne pas dépasser la taille de message maximale du transport sous-jacent. Si la taille de la mémoire tampon dépasse la taille de paquet maximale du fournisseur de services sous-jacent, le datagramme n’est pas envoyé et SendToAsync lève un SocketException. La réussite d’une SendToAsync méthode n’indique pas que les données ont été correctement livrées.

Voir aussi

S’applique à

SendToAsync(ArraySegment<Byte>, EndPoint)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envoie des données à l’hôte distant spécifié.

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)

Paramètres

buffer
ArraySegment<Byte>

Mémoire tampon pour les données à envoyer.

remoteEP
EndPoint

Hôte distant auquel envoyer les données.

Retours

Tâche asynchrone qui se termine avec le nombre d’octets envoyés.

Exceptions

remoteEP a la valeur null.

Une erreur s’est produite pendant la tentative d’accès au socket.

S’applique à

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envoie des données à l’hôte distant spécifié.

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)

Paramètres

buffer
ArraySegment<Byte>

Mémoire tampon pour les données à envoyer.

socketFlags
SocketFlags

Combinaison de valeurs SocketFlags au niveau du bit qui sera utilisée lors de l’envoi des données.

remoteEP
EndPoint

Hôte distant auquel envoyer les données.

Retours

Tâche asynchrone qui se termine avec le nombre d’octets envoyés.

Exceptions

remoteEP a la valeur null.

Une erreur s’est produite pendant la tentative d’accès au socket.

S’applique à

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envoie des données à l’hôte distant spécifié.

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)

Paramètres

buffer
ReadOnlyMemory<Byte>

Mémoire tampon pour les données à envoyer.

remoteEP
EndPoint

Hôte distant auquel envoyer les données.

cancellationToken
CancellationToken

Jeton d’annulation qui peut être utilisé pour annuler l’opération asynchrone.

Retours

Tâche asynchrone qui se termine avec le nombre d’octets envoyés.

Exceptions

remoteEP a la valeur null.

Une erreur s’est produite pendant la tentative d’accès au socket.

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

S’applique à

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

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envoie des données à l’hôte distant spécifié.

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)

Paramètres

buffer
ReadOnlyMemory<Byte>

Mémoire tampon pour les données à envoyer.

socketFlags
SocketFlags

Combinaison de valeurs SocketFlags au niveau du bit qui sera utilisée lors de l’envoi des données.

remoteEP
EndPoint

Hôte distant auquel envoyer les données.

cancellationToken
CancellationToken

Jeton d’annulation qui peut être utilisé pour annuler l’opération asynchrone.

Retours

Tâche asynchrone qui se termine avec le nombre d’octets envoyés.

Exceptions

remoteEP a la valeur null.

Une erreur s’est produite pendant la tentative d’accès au socket.

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

S’applique à

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

Source:
Socket.Tasks.cs
Source:
Socket.Tasks.cs

Envoie des données à un point de terminaison spécifique à l'aide du SocketFlags spécifié.

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)

Paramètres

buffer
ReadOnlyMemory<Byte>

Mémoire tampon pour les données à envoyer.

socketFlags
SocketFlags

Combinaison de valeurs au niveau du bit qui sera utilisée lors de SocketFlags l’envoi des données.

socketAddress
SocketAddress

SocketAddress qui représente la destination des données.

cancellationToken
CancellationToken

Jeton d’annulation qui peut être utilisé pour annuler l’opération asynchrone.

Retours

Tâche asynchrone qui se termine avec le nombre d’octets envoyés.

Exceptions

socketAddress a la valeur null.

Une erreur s’est produite pendant la tentative d’accès au socket.

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

S’applique à