Loading s7crs_l05_udp_socket...
{1}du programme fourni, vous constaterez le nom de la machine sur laquelle vous travaillez.
{2}du programme fourni, vous prendrez connaissance des adresses IP (un entier de 4 octets en IPv4) qui correspondent à des noms de domaine choisis.
{1}du programme fourni, vous allez créer une socket UDP qui sera associée à ce numéro de port.
{2}du programme fourni, vous fermerez la socket lorsqu'elle ne sera plus utile (à la fin du programme).
{3}du programme fourni, votre programme se met en attente du prochain message UDP qui arrivera sur le port surveillé.
{4}du programme fourni afin de renvoyer une réponse (textuelle à nouveau ici) à cet interlocuteur que nous venons tout juste de découvrir. Pour tester ce programme, nous le lançons tout d'abord dans un terminal : $ ./prog02_txt_udp_server 9876 ↵ host 'menthe23.enib.fr' waiting for an UDP message on port '9876'... Notre programme nous rappelle le nom de notre de machine ainsi que le port que nous avons choisi arbitrairement sur sa ligne de commande (>1024). Dans un autre terminal, nous pouvons utiliser cette commande✍
{1}du programme fourni, vous devez obtenir l'adresse IP du serveur choisi en ligne de commande.
{2}du programme fourni, vous allez créer une socket UDP qui vous servira à communiquer avec le serveur. Dès qu'on accède à des ressources du système (ici la socket), il convient de se poser la question de la libération de ces ressources.
{3}du programme fourni, vous fermerez la socket lorsqu'elle ne sera plus utile (à la fin du programme). La partie active du programme est une boucle dans laquelle s'enchaînent requêtes et réponses.
{4}du programme fourni, votre programme va envoyer sa requête au serveur via la socket UDP.
{5}du programme fourni afin de se placer en attente du prochain message UDP qui arrivera sur cette même socket (la réponse produite par le serveur).
{1}) et sa fermeture (point
{2}) sont strictement identiques à la version textuelle.
{3},
{4},
{5}et
{6}de ce programme, vous devez réaliser toutes les opérations de réception, conversion d'ordre, et envoi nécessaires à l'échange des informations numériques (recevoir un entier de 32 bits et renvoyer son double et son carré). De la même façon, le code source du programme prog05_bin_udp_client.cpp doit être complété en s'inspirant largement de ce qui a déjà été fait dans prog03_txt_udp_client.cpp ; il s'agit en effet d'un client UDP.
{1}), la création de la socket UDP (point
{2}) et sa fermeture (point
{3}) sont strictement identiques à la version textuelle.
{4},
{5},
{6}et
{7}de ce programme, vous devez réaliser toutes les opérations de conversion d'ordre, envoi et réception nécessaires à l'échange des informations numériques (envoyer un entier de 32 bits et en recevoir deux en réponse). Désormais, ces deux nouveaux programmes serveur et client UDP doivent pouvoir échanger leurs informations binaires ; testez leur fonctionnement, aussi bien en local qu'à distance depuis plusieurs machines.
{1}et
{2}) et leur fermeture (point
{3}) sont quasiment identiques aux serveurs UDP précédents (aux noms de variables près).
{4}). À la sortie de cet appel bloquant, le vecteur transmis a été modifié et ne contient plus que les sockets qui sont prêtes à délivrer de l'information sans attendre.
{5}et
{6}) si elle est toujours dans ce vecteur ; si c'est le cas, nous nous contentons d'invoquer la même séquence d'opération que dans le serveur spécialisé (textuel ou binaire). Vérifiez le bon fonctionnement de ce nouveau serveur en le sollicitant par de multiples clients textuels et binaires.