NOM¶
getpeername - Obtenir le nom d'un correspondant connecté sur une socket
SYNOPSIS¶
#include <sys/socket.h>
int getpeername(int sockfd, struct sockaddr
*addr, socklen_t *addrlen);
DESCRIPTION¶
La fonction
getpeername() renvoie l'adresse du correspondant
connecté sur la socket
sockfd, dans le tampon pointé par
addr. Le paramètre
addrlen doit être
initialisé pour indiquer la taille de la zone pointée par
addr. En retour, il contiendra la longueur effective (en octets) du nom
retourné. Le nom est tronqué si le tampon est trop petit.
L'adresse renvoyée est tronquée si le tampon fourni est trop
petit ; dans ce cas,
addrlen renverra une valeur
supérieure à celle fournie lors de l'appel.
VALEUR RENVOYÉE¶
S'il réussit, cet appel système renvoie 0. S'il échoue, il
renvoie -1 et remplit
errno en conséquence.
ERREURS¶
- EBADF
- sockfd n'est pas un descripteur valable.
- EFAULT
- Le paramètre addr pointe en dehors de l'espace d'adressage
accessible.
- EINVAL
- addrlen n'est pas valable (négatif, par exemple).
- ENOBUFS
- Les ressources système disponibles sont insuffisantes.
- ENOTCONN
- La socket n'est pas connectée.
- ENOTSOCK
- Le paramètre sockfd est un fichier, pas une socket.
SVr4, BSD 4.4 (la fonction
getpeername() est apparue dans
BSD 4.2), POSIX.1-2001.
NOTES¶
Le troisième argument de
getpeername() est en fait un
«
int * » (et c'est ce qu'utilisent
BSD 4.x, libc4 et libc5). Une certaine confusion POSIX a donné
le «
socklen_t » actuel, également
utilisé par la glibc. Pour plus de détails consultez
accept(2).
Pour les sockets flux, une fois que
connect(2) a été
réalisé, chaque socket peut appeler
getpeername() pour
obtenir l'adresse de la socket correspondante. D'un autre côté,
les sockets datagramme sont sans connexion. Appeler
connect(2) sur une
socket datagramme définit simplement l'adresse correspondante pour les
datagrammes sortants envoyés avec
write(2) ou
recv(2).
L'appelant de
connect(2) peut utiliser
getpeername() pour
obtenir l'adresse correspondante qui est définie plus tôt pour
la socket. Cependant, la socket correspondante ne connaît pas ces
renseignements et appeler
getpeername() sur la socket correspondante ne
renverra aucun renseignement utile (sauf si un appel
connect(2) est
aussi exécuté sur la correspondante). Remarquez aussi que le
destinataire d'un datagramme peut obtenir l'adresse de l'expéditeur en
utilisant
recvfrom(2).
VOIR AUSSI¶
accept(2),
bind(2),
getsockname(2),
ip(7),
socket(7),
unix(7)
COLOPHON¶
Cette page fait partie de la publication 3.65 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et
l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet
manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce
document en utilisant la commande «
man -L C
<section>
<page_de_man> ».