Fonction de rappel LPWSPGETSOCKNAME (ws2spi.h)
La fonction LPWSPGetSockName obtient le nom local d’un socket.
Syntaxe
LPWSPGETSOCKNAME Lpwspgetsockname;
int Lpwspgetsockname(
[in] SOCKET s,
[out] sockaddr *name,
[in, out] LPINT namelen,
[out] LPINT lpErrno
)
{...}
Paramètres
[in] s
Descripteur identifiant un socket lié.
[out] name
Pointeur vers une structure de sockaddr utilisée pour fournir l’adresse (nom) du socket.
[in, out] namelen
En entrée, pointeur vers un entier qui indique la taille de la structure pointée par son nom, en octets. La sortie indique la taille du nom retourné, en octets.
[out] lpErrno
Pointeur vers le code d’erreur.
Valeur retournée
Si aucune erreur ne se produit, LPWSPGetSockName retourne zéro. Sinon, une valeur de SOCKET_ERROR est retournée et un code d’erreur spécifique est disponible dans lpErrno.
Code d'erreur | Signification |
---|---|
Le sous-système réseau a échoué. | |
Le nom ou le paramètre namelen ne fait pas partie de l’espace d’adressage de l’utilisateur ou le paramètre namelen est trop petit. | |
La fonction est appelée lorsqu’un rappel est en cours. | |
Le descripteur n’est pas un socket. | |
Socket n’a pas été lié à une adresse avec LPWSPBind, ou ADDR_ANY est spécifié dans **LPWSPBind** mais la connexion n’a pas encore eu lieu. |
Remarques
LPWSPGetSockName récupère le nom actuel du descripteur de socket spécifié dans name. Il est utilisé sur un socket lié et/ou connecté spécifié par le paramètre s . L’association locale est retournée. Cet appel est particulièrement utile lorsqu’un appel LPWSPConnect a été effectué sans effectuer d’abord un LPWSPBind ; car cet appel fournit les seuls moyens par lesquels l’association locale qui a été définie par le fournisseur de services peut être déterminée.
Si un socket a été lié à une adresse non spécifiée (par exemple, ADDR_ANY), indiquant que l’une des adresses de l’hôte au sein de la famille d’adresses spécifiée doit être utilisée pour le socket, LPWSPGetSockNamene retourne pas nécessairement d’informations sur l’adresse hôte, sauf si le socket a été connecté à LPWSPConnect ou LPWSPAccept. Le client SPI windows Sockets ne doit pas supposer qu’une adresse sera spécifiée, sauf si le socket est connecté. En effet, pour un hôte multihomed, l’adresse qui sera utilisée pour le socket est inconnue tant que le socket n’est pas connecté.
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
En-tête | ws2spi.h |