Faire communiquer deux ordinateurs en utilisant des datagrammes de type UDP en utilisant des méthodes threads qui seront lancées en tant que daemon (tournant donc en tâche de fond et ne s'arrêttant pas seules). La discussion entre les deux machines prendra fin dès que l'une des machines aura envoyé le mot clef "fin".
Ce TP est largement inspiré de l'excellent site de Madame Irène Sharon (ENST - Paris) dont vous trouverez à la BU le livre intitulé "Le langage Java : concepts et pratique" - Éditions Hermès (ISBN 2-7462-1212-9).
Il s'agit décrire trois nouvelles classes :
Globalement, il faut reprendre ce que nous avons programmé sur les échanges de datagrammes à l'intérieur des méthodes run() des threads. La difficulté majeure consiste à synchroniser proprement les threads et la classe principale à l'aide de la méthode synchronized et notify().
Indication sur la synchronisation :
Lorsqu'une méthode d'instance déclarée synchronized est invoquée, elle pose un verrou sur l'instance concernée. Précisément, si une autre thread invoque une méthode elle aussi synchronized , elle attendra jusqu'à ce que le verrou soit relâché. Le verrou sera relâché si :
Attention aux forts riques de "plantage" liés à la mauvaise utilisation des daemons et des instructions de synchronisation.