fonction getsockname (winsock.h)

La fonction getsockname récupère le nom local d’un socket.

Syntaxe

int getsockname(
  [in]      SOCKET   s,
  [out]     sockaddr *name,
  [in, out] int      *namelen
);

Paramètres

[in] s

Descripteur identifiant un socket.

[out] name

Pointeur vers une structure SOCKADDR qui reçoit l’adresse (nom) du socket.

[in, out] namelen

Taille de la mémoire tampon de noms , en octets.

Valeur retournée

Si aucune erreur ne se produit, getsockname 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
WSANOTINITIALISED
Un appel WSAStartup réussi doit se produire avant d’utiliser cette API.
WSAENETDOWN
Le sous-système réseau a échoué.
WSAEFAULT
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.
WSAEINPROGRESS
Un appel bloquant Windows Sockets 1.1 est en cours ou le fournisseur de services traite toujours une fonction de rappel.
WSAENOTSOCK
Le descripteur n’est pas un socket.
WSAEINVAL
Le socket n’a pas été lié à une adresse avec liaison, ou ADDR_ANY est spécifié dans bind , mais la connexion n’a pas encore eu lieu.

Remarques

La fonction getsockname récupère le nom actuel du descripteur de socket spécifié dans name. Il est utilisé sur le socket lié ou connecté spécifié par le paramètre s . L’association locale est retournée. Cet appel est particulièrement utile lorsqu’un appel de connexion a été effectué sans effectuer de liaison préalable ; la fonction getsockname fournit le seul moyen de déterminer l’association locale qui a été définie par le système.

À l’appel, le paramètre namelen contient la taille de la mémoire tampon de noms , en octets. Au retour, le paramètre namelen contient la taille réelle en octets du paramètre name .

La fonction getsockname ne retourne pas toujours d’informations sur l’adresse de l’hôte lorsque le socket a été lié à une adresse non spécifiée, sauf si le socket a été connecté avec la connexion ou l’acceptation (par exemple, à l’aide de ADDR_ANY). Une application Windows Sockets ne doit pas supposer que l’adresse sera spécifiée, sauf si le socket est connecté. L’adresse qui sera utilisée pour le socket est inconnue, sauf si le socket est connecté lorsqu’il est utilisé dans un hôte multi-hébergement. Si le socket utilise un protocole sans connexion, l’adresse peut ne pas être disponible tant que les E/S ne se produisent pas sur le socket.

Windows Phone 8 : cette fonction est prise en charge pour les applications du Store Windows Phone Windows Phone 8 et versions ultérieures.

Windows 8.1 et Windows Server 2012 R2 : cette fonction est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1, Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winsock.h (inclure Winsock2.h)
Bibliothèque Ws2_32.lib
DLL Ws2_32.dll

Voir aussi

SOCKADDR

Fonctions Winsock

Informations de référence sur Winsock

bind

getpeername

socket