Skip to topic | Skip to bottom
Home
Minfo04
Minfo04.SocketsTp1r1.3 - 12 Feb 2005 - 13:22 - RogerRousseautopic end

Start of topic | Skip to actions

Programmation Sockets : TP1

Première partie : Rappels de programmation système

1. Ecrivez un programme C qui affiche son numéro de PID et de PPID (processus parent).

2. Ecrire un programme C qui reproduit le graphe de tâches suivant, dans lequel chaque tâche doit afficher :

  • Son PID
  • Son PPID
  • La liste des PID des fils éventuellement créés

graphe.jpg

3. Ecrivez un programme qui boucle sur une attente active et traite les signaux de la façon suivante :

  • Fin du programme lors de la réception de SIGUSR1
  • Affiche un message indiquant le numéro du signal reçu lors de la réception de l'un des signaux SIGINT et SIGTERM, puis reprise de la boucle d'attente active.

4. Rappelons qu'un processus parent est informé de la mort de l'un de ses fils par le signal SIGCHLD. Ecrivez un programme qui crée un fils et attend sa terminaison avec wait. Faîtes de plus en sorte que le processus père affiche quelque chose lors de la réception du signal SIGCHLD.

5. En reprenant le graphe des tâches de l'exercice 2., faites en sorte que les processus se synchronisent de façon à ce que les petits-fils 1 et 2 affichent leur messages avant les fils 2 et 3.

6. En utilisant les signaux, faîtes en sorte que le processus père ne fasse appel à wait qu'une fois que l'un de ses fils est mort. Quel est l'intérêt de cette manoeuvre ?

Deuxième partie : Manipulations d'adresses

7. Ecrivez un programme qui affiche le nom et le numéro IP de la machine sur laquelle il s'exécute.

8. Ecrivez un programme qui affiche le numéro IP d'une machine dont on lui donne le nom en paramètre.

9. Ecrivez un programme qui affiche le nom canonique d'une machine il récupère l'adresse au format "point-décimal".

10. Ecrivez un programme qui affiche toutes les informations (azlias compris) d'une machine dont il récupère le nom en paramètre. Vérifiez qu'il fonctionne correctement en l'appelant avc le nom d'une machine qui possède plusieurs alias (exemple: fortissimo.unice.fr ).

11. Ecrivez un squelette de programme qui lit en paramètre le nom d'une autre machine (ou son adresse au format "point-décimal") ainsi qu'un numéro de port et rempli deux structures de type struct sockaddr_in : l'une à partir des informations concernant la machine indiquée en paramètre, et l'autre à partir des informations concernant la machine sur laquelle s'exécute le programme. Vous initialiserez le numéro de port de ces deux structures à partir du numéro indiqué en paramètre. Ce squelette vous servira de base dans les prochains TD sur les sockets ...

Troisième partie

12. En partant du squelette précédent, et en vous réferant au synoptique d'une communication en mode non connecté donné en cours et en vous aidant des pages de manuel, (tentez d') écrire un programme qui utilise le protocole UDP pour envoyer une chaine de caractère à un autre programme (que vous devrez écrire aussi) s'exécutant sur une machine voisine. Le programme destinataire devra simplement afficher la chaîne reçue avant de se terminer.

-- OlivierDalle - 06 Dec 2004


to top


You are here: Minfo04 > ReseauxEtProgrammationSocket > SocketsTp1

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback