Les sockets

La socket comme extrémité de communication, le flux TCP et les datagrammes UDP, les appels du serveur (socket, bind, listen, accept) et du client (socket, connect), send et recv, sendto et recvfrom, et l'ordre des octets du réseau.

  • 31 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Les chiffres
  5. Sur le schéma

Quelques cartes du deck

  • Socket : de quoi s'agit-il ?

    Voir la réponse

    Extrémité de communication manipulée par un descripteur, repérée par une adresse IP, un numéro de port et un protocole de transport.

    Comme un fichier ou un tube, on la lit et on l'écrit avec des descripteurs. Elle s'obtient avec socket(AF_INET, SOCK_STREAM, 0) pour TCP et SOCK_DGRAM pour UDP.

  • Que faut-il écrire à la place du point d'interrogation pour lire ce que le client a envoyé ?

    ```c
    int ecoute = socket(AF_INET, SOCK_STREAM, 0);
    bind(ecoute, (struct sockaddr *)&adresse, sizeof adresse);
    listen(ecoute, 5);
    int client = accept(ecoute, NULL, NULL);
    char buf[100];
    ssize_t n = recv(?, buf, sizeof buf, 0);
    `

    • client
    • ecoute
    • ecoute, après un second accept
    • 0, l'entrée standard du serveur
    Voir la réponse

    client

    accept a rendu client, la socket de service pour cet échange. La socket d'écoute ne sert qu'à accepter les connexions : y appeler recv donne l'erreur « Transport endpoint is not connected ».

  • Côté serveur TCP, l'ordre des appels est socket, …, …, … ; le client, lui, enchaîne socket puis connect.

    Voir la réponse

    Côté serveur TCP, l'ordre des appels est socket, bind, listen, accept ; le client, lui, enchaîne socket puis connect.

    bind fixe l'adresse locale, listen ouvre la file d'attente, accept en retire un client. Le client n'appelle pas bind : le système lui donne un port éphémère.