Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
connect - Debuter une connexion sur une socket
SYNOPSIS
#include <sys/types.h> /* Consultez NOTES */
#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *addr,
socklen_t addrlen);
DESCRIPTION
L'appel systeme connect() connecte la socket associee au descripteur de
fichier sockfd a l'adresse indiquee par addr. L'argument addrlen
indique la taille de addr. Le format de l'adresse addr est determine
par la famille de la socket sockfd ; consultez socket(2) pour plus de
details.
Si la socket sockfd est du type SOCK_DGRAM, alors serv_addr est
l'adresse a laquelle les datagrammes seront envoyes par defaut, et la
seule adresse depuis laquelle ils seront recus. Si la socket est du
type SOCK_STREAM ou SOCK_SEQPACKET, cette fonction tente de se
connecter a une autre socket. L'adresse de l'autre socket est indiquee
par serv_addr, qui doit etre une adresse (de longueur addrlen) dans le
meme domaine que la socket. Chaque domaine de communication interprete
le parametre addr a sa maniere.
En general, les sockets des protocoles orientes connexion ne
reussissent un appel connect() qu'une seule fois, alors qu'une socket
d'un protocole sans connexion peut appeler connect() plusieurs fois
pour changer son affectation. Une socket sans connexion peut
interrompre son affectation en se connectant sur une adresse avec le
membre sa_family de la structure sockaddr a la valeur AF_UNSPEC (gere
par Linux depuis le noyau 2.2).
VALEUR RENVOY'EE
connect() renvoie 0 s'il reussit, ou -1 s'il echoue, auquel cas errno
contient le code d'erreur.
ERREURS
Voici une liste d'erreurs generales concernant les sockets. Il peut en
exister d'autres specifiques au domaine employe.
EACCES Pour les sockets de domaine Unix qui sont specifiees par un nom
de chemin : la permission en ecriture est refusee sur le fichier
socket, ou la permission de parcours est refusee pour l'un des
repertoires composant le chemin. (Consultez aussi
path_resolution(7).)
EACCES, EPERM
L'utilisateur a tente de se connecter a une adresse broadcast
sans avoir active l'attribut broadcast, ou la demande de
connexion a echoue a cause des regles d'un pare-feu local.
EADDRINUSE
L'adresse locale est deja utilisee.
EAFNOSUPPORT
L'adresse transmise n'a pas la bonne valeur dans son champ
sa_family.
EAGAIN Pas de port local disponible, ou pas assez de place dans les
tables de routage. Pour AF_INET, consultez la description de
/proc/sys/net/ipv4/ip_local_port_range dans ip(7) pour les
informations indiquant comment augmenter le nombre de ports
locaux.
EALREADY
La socket est non bloquante et une tentative de connexion
precedente ne s'est pas encore terminee.
EBADF Mauvais descripteur.
ECONNREFUSED
La connexion est refusee par le serveur.
EFAULT La structure d'adresse pointe en dehors de l'espace d'adressage.
EINPROGRESS
La socket est non bloquante, et la connexion ne peut pas etre
etablie immediatement. Il est alors possible d'utiliser
select(2) ou poll(2) pour attendre que la socket soit disponible
en ecriture. Une fois que select(2) confirme la possibilite
d'ecrire, utilisez getsockopt(2) pour lire l'option SO_ERROR du
niveau SOL_SOCKET et determiner si connect() s'est termine avec
succes (SO_ERROR vaut zero) ou en echec (SO_ERROR contient l'un
des codes d'erreurs listes ici, indiquant le probleme).
EINTR L'appel systeme a ete interrompu par l'arrivee d'un signal avant
qu'une connexion valide ne survienne ; consultez signal(7).
EISCONN
La socket est deja connectee.
ENETUNREACH
Le reseau est inaccessible.
ENOTSOCK
Le descripteur ne correspond pas a une socket.
ETIMEDOUT
Depassement du delai maximum pendant la connexion. Le serveur
peut etre trop charge pour accepter une nouvelle connexion.
Remarquez que pour les sockets IP, le delai peut etre tres long
si les syncookies sont actives sur le serveur.
CONFORMIT'E
SVr4, BSD 4.4 (la fonction connect() est apparue dans BSD 4.2),
POSIX.1-2001.
NOTES
POSIX.1-2001 ne requiert pas l'inclusion de <sys/types.h>, et cet en-
tete n'est pas necessaire sous Linux. Cependant, il doit etre inclus
sous certaines implementations historiques (BSD), et les applications
portables devraient probablement l'utiliser.
Le troisieme argument de connect() est en fait un int (et c'est ce
qu'utilisent BSD 4.x, libc4 et libc5). Une certaine confusion POSIX a
donne le << socklen_t >> actuel, egalement utilise par glibc. Pour plus
de details, consultez accept(2).
EXEMPLE
getaddrinfo(3) contient un exemple d'utilisation de connect().
VOIR AUSSI
accept(2), bind(2), getsockname(2), listen(2), socket(2),
path_resolution(7)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
Linux 3 decembre 2008 CONNECT(2)