Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais
Cette documentation est archivée et n’est pas conservée.

Socket.SendAsync, méthode

Envoie des données de façon asynchrone à un objet Socket connecté.

Espace de noms :  System.Net.Sockets
Assembly :  System (dans System.dll)

public bool SendAsync(
	SocketAsyncEventArgs e
)

Paramètres

e
Type : System.Net.Sockets.SocketAsyncEventArgs
Objet System.Net.Sockets.SocketAsyncEventArgs à utiliser pour cette opération de socket asynchrone.

Valeur de retour

Type : System.Boolean
Retourne la valeur true si l'opération d'E/S est en attente. L'événement SocketAsyncEventArgs.Completed sur le paramètre e sera déclenché une fois l'opération terminée.
Retourne la valeur false si l'opération d'E/S a été terminée de manière synchrone. Dans ce cas, l'événement SocketAsyncEventArgs.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.

ExceptionCondition
ArgumentException

La propriété SocketAsyncEventArgs.Buffer ou SocketAsyncEventArgs.BufferList sur le paramètre de e doit référencer des mémoires tampon valides. L'une ou l'autre de ces propriétés peut être définie, mais pas les deux à la fois.

InvalidOperationException

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

NotSupportedException

Windows XP ou version ultérieure est requis pour cette méthode.

ObjectDisposedException

Socket a été fermé.

SocketException

Le Socket n'est pas encore connecté ou n'a pas été obtenu via une méthode Accept, AcceptAsyncou BeginAccept.

La méthode SendAsync est utilisée pour écrire des données sortant d'une ou plusieurs mémoires tampon sur un socket orienté connexion. Cette méthode peut également être utilisée, toutefois, sur les sockets sans connexion ayant spécifié un hôte distant sur une opération de connexion.

La méthode SendAsync démarre une opération d'envoi asynchrone à l'hôte distant établi dans la méthode Accept, AcceptAsync, BeginAccept, BeginConnect, Connect ou ConnectAsync.

Les propriétés et événements suivants sur l'objet System.Net.Sockets.SocketAsyncEventArgs sont requis pour appeler cette méthode avec succès :

L'appelant peut affecter à la propriété SocketAsyncEventArgs.UserToken tout objet d'état utilisateur désiré avant d'appeler la méthode SendAsync, 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 simple objet, une petite classe peut être créée pour contenir les autres informations d'état requises en tant que membres.

La méthode SendAsync lèvera une exception si vous n'appelez pas en premier Accept, AcceptAsync, BeginAcceptBeginConnect, Connect ou ConnectAsync.

L'appel à la méthode SendAsync vous permet d'envoyer les données dans un thread d'exécution séparé.

Pour les sockets orientés message, ne dépassez pas la taille maximale du message du fournisseur de services Windows Sockets sous-jacent. Si les données sont trop longues à traverser atomiquement le fournisseur de services sous-jacent, aucune donnée n'est transmise et la méthode SendAsync lève une exception SocketException avec le SocketAsyncEventArgs.SocketError défini sur le code d'erreur Winsock WSAEMSGSIZE natif (10040).

Notez qu'une exécution correcte de la méthode SendAsync ne signifie pas que les données ont été correctement remises.

.NET Framework

Pris en charge dans : 4, 3.5 SP1, 3.0 SP1, 2.0 SP1

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Afficher: