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.
addrlendoit contenir la taille en octets de la structurestruct sockaddrqui 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