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 donne la possibilité 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 elle fonctionne à la fois avec les protocoles sans connexion et les protocoles 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 correctement 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 . Sinon, 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 System.Net.EndPoint données au établi dans la Acceptméthode , AcceptAsync, BeginAcceptBeginConnect, , Connectou 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 devez le faire uniquement 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 et le numéro de port du réseau local les plus appropriés. Utilisez un numéro de port égal à 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 LocalEndPoint propriété une fois l’événement SocketAsyncEventArgs.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 maximale des paquets du fournisseur de services sous-jacent. Si c’est le cas, le datagramme ne sera pas envoyé et SendToAsync lèvera 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 messages, il faut veiller à ne pas dépasser la taille maximale des messages du transport sous-jacent. Si la taille de la mémoire tampon dépasse la taille maximale des paquets du fournisseur de services sous-jacent, le datagramme n’est pas envoyé et SendToAsync lève un SocketException. L’achèvement réussi d’une SendToAsync méthode n’indique pas que les données ont été correctement remises.

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 bits de valeurs SocketFlags qui seront utilisées 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 bits de valeurs SocketFlags qui seront utilisées 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 bits de valeurs qui seront utilisées 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 à