Man page - connect(2)

Packages contains this manual

Available languages:

en fr es pl tr ja ru ro de

Manual

connect

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

connect - Débuter une connexion sur un socket

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <sys/socket.h>

int connect(int sockfd , const struct sockaddr * addr ,
socklen_t
addrlen );

DESCRIPTION

L’appel systĂšme connect () connecte le socket associĂ© au descripteur de fichier sockfd Ă  l’adresse indiquĂ©e par addr . L’argument addrlen indique la taille de addr . Le format de l’adresse addr est dĂ©terminĂ© par la famille du socket sockfd ; consultez socket (2) pour plus de dĂ©tails.

Si le socket sockfd est du type SOCK_DGRAM , alors addr est l’adresse Ă  laquelle les datagrammes seront envoyĂ©s par dĂ©faut, et la seule adresse depuis laquelle ils seront reçus. Si le socket est du type SOCK_STREAM ou SOCK_SEQPACKET , cette fonction tente de se connecter Ă  un autre socket. L’adresse de l’autre socket est indiquĂ©e par addr .

Certains sockets de protocole (comme les sockets de flux de domaine UNIX) peuvent connect () avec succĂšs une seule fois.

Certains sockets de protocole (comme les sockets datagramme des domaines UNIX et Internet) peuvent utiliser connect () plusieurs fois pour modifier leur association.

Certains sockets (comme les sockets TCP ainsi que les sockets datagramme des domaines UNIX et Internet) peuvent rompre l’association en se connectant Ă  une adresse avec le membre sa_family de sockaddr positionnĂ© sur AF_UNSPEC; , le socket peut par la suite se connecter Ă  une autre adresse ( AF_UNSPEC est pris en charge sur Linux depuis Linux 2.2).

VALEUR RENVOYÉE

connect () renvoie 0 s’il rĂ©ussit, ou -1 s’il Ă©choue, auquel cas errno est positionnĂ© pour indiquer l’erreur.

ERREURS

Voici une liste d’erreurs gĂ©nĂ©rales concernant les sockets. Il peut en exister d’autres spĂ©cifiques au domaine employĂ©.

EACCES

Pour les sockets de domaine UNIX qui sont spĂ©cifiĂ©s par un nom de chemin : la permission en Ă©criture est refusĂ©e sur le fichier socket, ou la permission de parcours est refusĂ©e pour l’un des rĂ©pertoires composant le chemin. (Consultez aussi path_resolution (7).)

EACCES

EPERM

L’utilisateur a tentĂ© de se connecter Ă  une adresse broadcast sans avoir activĂ© l’attribut broadcast, ou la demande de connexion a Ă©chouĂ© Ă  cause des rĂšgles d’un pare-feu local.

EACCES

Ces codes d’erreur peuvent aussi ĂȘtre renvoyĂ©s si une rĂšgle SELinux a interdit une connexion (par exemple si une rĂšgle prĂ©voit qu’un mandataire HTTP ne peut se connecter qu’à des ports associĂ©s Ă  des serveurs HTTP et que le mandataire essaie de se connecter Ă  un autre port).

EADDRINUSE

L’adresse locale est dĂ©jĂ  utilisĂ©e.

EADDRNOTAVAIL

(Sockets Internet) Le socket indiquĂ© par sockfd n’a pas encore Ă©tĂ© attachĂ© a une adresse, et lors d’une tentative d’attachement Ă  un port Ă©phĂ©mĂšre, aucun port n’était disponible dans l’intervalle des ports Ă©phĂ©mĂšres. Consultez les explications concernant /proc/sys/net/ipv4/ip_local_port_range dans ip (7).

EAFNOSUPPORT

L’adresse transmise n’a pas la bonne valeur dans son champ sa_family .

EAGAIN

Pour les sockets de domaine UNIX non bloquants, le socket n’est pas bloquant et la connexion ne peut pas ĂȘtre Ă©tablie immĂ©diatement. Pour les autres familles de sockets, il n’y a pas assez d’entrĂ©es dans le cache de routage.

EALREADY

Le socket est non bloquant et une tentative de connexion prĂ©cĂ©dente ne s’est pas encore terminĂ©e.

EBADF

sockfd n’est pas un descripteur de fichier valable.

ECONNREFUSED

La connect () Ă  un socket de flux n’a rien trouvĂ© qui Ă©coutait Ă  l’adresse distante.

EFAULT

La structure d’adresse pointe en dehors de l’espace d’adressage.

EINPROGRESS

Le socket est non bloquant et la connexion ne peut pas ĂȘtre Ă©tablie immĂ©diatement (les sockets de domaines UNIX Ă©chouaient plutĂŽt avec EAGAIN ). Il est alors possible d’utiliser select (2) ou poll (2) pour attendre que le socket soit disponible en Ă©criture. Une fois que select (2) confirme la possibilitĂ© d’écrire, utilisez getsockopt (2) pour lire l’option SO_ERROR du niveau SOL_SOCKET et dĂ©terminer si connect () s’est terminĂ© avec succĂšs ( SO_ERROR vaut zĂ©ro) ou en Ă©chec ( SO_ERROR contient l’un des codes d’erreurs listĂ©s ici, indiquant le problĂšme).

EINTR

L’appel systĂšme a Ă©tĂ© interrompu par la rĂ©ception d’un signal ; consultez signal (7).

EISCONN

Le socket est déjà connecté.

ENETUNREACH

Le réseau est inaccessible.

ENOTSOCK

Le descripteur de fichier sockfd ne fait pas référence à un socket.

EPROTOTYPE

Le protocole de communication demandĂ© n’est pas acceptĂ© par le type de socket. Cette erreur peut se produire, par exemple, lors d’une tentative de connexion d’un socket de datagramme UNIX avec un socket de flux.

ETIMEDOUT

DĂ©passement du dĂ©lai maximal pendant la connexion. Le serveur peut ĂȘtre trop chargĂ© pour accepter une nouvelle connexion. Remarquez que pour les sockets IP, le dĂ©lai peut ĂȘtre trĂšs long si les syncookies sont activĂ©s sur le serveur.

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001, SVr4, 4.4BSD, ( connect () est apparu dans 4.2BSD).

NOTES

Si connect () échoue, considérez que le socket est dans un état non spécifié. Les applications portables devraient fermer le socket et en créer un nouveau pour se reconnecter.

EXEMPLES

getaddrinfo (3) contient un exemple d’utilisation de connect ().

VOIR AUSSI

accept (2), bind (2), getsockname (2), listen (2), socket (2), path_resolution (7), selinux (8)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .