bind()
: associer une socket à un couple (adresse IP, numéro de port) et ouvrir le port indiqué
Documentation : perkamon.traduc.org : bind(2)
Syntaxe
#include <sys/types.h> #include <sys/socket.h> int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
Description
Associe à la socket de descripteur sockfd
le couple (adresse IP, n° de port) défini dans *addr
. Si bind()
réussi,
le port est ouvert.
addrlen
doit contenir la taille en octets de la structurestruct sockaddr
qui est définie de la façon suivante :
struct sockaddr { sa_family_t sa_family; /* famille d'adresses : AF_INET, AF_UNIX, ... */ char sa_data[14]; /* contient l'adresse */ }
Cette structure est le dénominateur commun de deux autres structures qui correspondent à un nom de fichier dans le domaine UNIX
(communication intra-machine) et à un couple (adresse IP, n° de port) dans le domaine réseau (INET
).
- Dans le domaine INET (perkamon.alioth.debian.org : ip(7)) :
struct sockaddr_in { sa_family_t sin_family; /* famille d’adresses : AF_INET */ in_port_t sin_port; /* port dans l’ordre des octets du réseau sur 2 octets */ struct in_addr sin_addr; /* adresse internet sur 4 octets */ }
La structure struct in_addr
est définie ci-dessous :
struct in_addr { uint32_t s_addr; /* adresse IPv4 sur 4 octets dans l’ordre des octets du réseau */ }
- Valeur de retour : 0 ou -1 en cas d'erreur