Subsections XIII Généralités sur les sockets de Berkeley 1 Généralités 2 Présentation des sockets 3 Étude des primitives 3.1 Création d'une socket 3.1.1 Valeur retournée par socket 3.2 Spécification d'une adresse 3.2.1 Spécification d'un numéro de port 3.2.2 Spécification d'une adresse IP 3.2.3 La primitive bind 3.2.4 Les structures d'adresses 3.2.5 Valeur retournée par bind 3.3 Connexion à une adresse distante 3.3.1 Mode connecté 3.3.2 Mode datagramme 3.3.3 Valeur retournée par connect : 3.4 Envoyer des données 3.4.1 Envoi en mode connecté 3.4.2 Envoi en mode datagramme 3.5 Recevoir des données 3.5.1 Reception en mode connecté 3.5.2 Recevoir en mode datagramme 3.6 Spécifier une file d'attente 3.7 Accepter une connexion 3.8 Terminer une connexion 4 Schéma général d'une session client-serveur 5 Exemples de code `` client '' 5.1 Client TCP `` DTCPcli '' 5.2 Client UDP `` DUDPcli '' 6 Conclusion et Bibliographie XIV Compléments sur les sockets Berkeley 1 Réservation des ports 1.1 Réservation de port -- Ancienne méthode 1.2 Réservation de port -- Nouvelle méthode 2 Ordre des octets sur le réseau 3 Opérations sur les octets 4 Conversion d'adresses 4.1 Conversion d'adresse - IPv4 seul 4.2 Conversion d'adresse - Compatible IPv4 et IPv6 5 Conversion hôte - adresse IPv4 5.1 Une adresse IP à partir d'un nom d'hôte 5.2 Un nom d'hôte à partir d'une adresse IP 6 Conversion N de port - service 6.1 Le numéro à partir du nom 6.2 Le nom à partir du numéro 7 Getaddrinfo, pour IPv4 et IPv6 7.1 La fonction getaddrinfo 7.1.1 Prototype de getaddrinfo 7.1.2 Description des arguments 7.1.3 La structure addrinfo 7.1.4 En résumé 7.1.5 Exemple d'usage à la place de gethostbyname 7.1.6 Exemple d'usage à la place de getservbyname 7.1.7 En résumé 8 Conversion nom de protocole - N de protocole 9 Diagnostic 10 Exemples de mise en application 10.1 Ancienne méthode (usage de gethostbyname) 10.2 Nouvelle méthode (usage de getaddrinfo) 11 Conclusion et bibliographie XV Éléments de serveurs 1 Type de serveurs 1.1 Serveurs itératif et concourant 1.2 Le choix d'un protocole 1.2.1 Mode connecté 1.2.2 Mode datagramme 1.3 Quatre modèles de serveurs 2 Technologie élémentaire 2.1 Gestion des `` tâches esclaves '' 2.2 fork, vfork et rfork 2.3 Processus légers, les `` threads '' 2.4 Programmation asynchrone 2.5 La primitive select 2.6 La primitive poll 3 Fonctionnement des daemons 3.1 Programmation d'un daemon 3.2 Daemon syslogd 3.3 Fichier syslog.conf 3.4 Fonctions syslog 4 Exemple de `` daemon '' inetd 4.1 Présentation de inetd 5 Exemple de code serveur 5.1 Guide de lecture du source serv2prot.c 6 Bibliographie XVI Anatomie d'un serveur Web 1 Le protocole HTTP 1.1 Exemple d'échange avec http 1.2 Structure d'un échange 2 URIs et URLs 2.1 Scheme http 3 Architecture interne du serveur Apache 3.1 Environnement d'utilisation 3.2 Architecture interne 3.2.1 Gestion des processus 3.2.2 Prise en main des requêtes 3.2.3 Deux types de CGIs 4 Principe de fonctionnement des CGIs 4.1 CGI -- Méthode GET, sans argument 4.2 CGI -- Méthode GET, avec arguments 4.3 CGI -- Méthode POST 4.4 Ecriture d'une CGI en Perl 5 Conclusion - Bibliographie François Laissus 2009-02-27