Fonction WSASendDisconnect (winsock2.h)
La fonction WSASendDisconnect initie l’arrêt de la connexion pour le socket et envoie les données de déconnexion.
Syntaxe
int WSAAPI WSASendDisconnect(
[in] SOCKET s,
[in] LPWSABUF lpOutboundDisconnectData
);
Paramètres
[in] s
Descripteur identifiant un socket.
[in] lpOutboundDisconnectData
Pointeur vers les données de déconnexion sortantes.
Valeur retournée
Si aucune erreur ne se produit, WSASendDisconnect retourne zéro. Sinon, une valeur de SOCKET_ERROR est retournée et un code d’erreur spécifique peut être récupéré en appelant WSAGetLastError.
Code d'erreur | Signification |
---|---|
Un appel WSAStartup réussi doit se produire avant d’utiliser cette fonction. | |
Le sous-système réseau a échoué. | |
Le paramètre lpOutboundDisconnectData n’est pas NULL et les données de déconnexion ne sont pas prises en charge par le fournisseur de services. | |
Un appel bloquant Windows Sockets 1.1 est en cours ou le fournisseur de services traite toujours une fonction de rappel. | |
Le socket n’est pas connecté (sockets orientés connexion uniquement). | |
Le descripteur n’est pas un socket. | |
Le paramètre lpOutboundDisconnectData n’est pas entièrement contenu dans une partie valide de l’espace d’adressage utilisateur. |
Remarques
La fonction WSASendDisconnect est utilisée sur les sockets orientés connexion pour désactiver la transmission et lancer l’arrêt de la connexion ainsi que la transmission de données de déconnexion, le cas échéant. Cela équivaut à un arrêt (SD_SEND), sauf que WSASendDisconnect autorise également l’envoi de données de déconnexion (dans les protocoles qui les prennent en charge).
Une fois cette fonction correctement émise, les envois suivants sont interdits.
Le paramètre lpOutboundDisconnectData , s’il n’est pas NULL, pointe vers une mémoire tampon contenant les données de déconnexion sortantes à envoyer à la partie distante pour la récupération à l’aide de WSARecvDisconnect.
La fonction WSASendDisconnect ne bloque pas, quel que soit le paramètre SO_LINGER sur le socket.
Une application ne doit pas s’appuyer sur la possibilité de réutiliser un socket après l’appel de WSASendDisconnect. En particulier, un fournisseur Windows Sockets n’est pas nécessaire pour prendre en charge l’utilisation de la connexion/de WSAConnect sur un tel socket.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winsock2.h |
Bibliothèque | Ws2_32.lib |
DLL | Ws2_32.dll |