Sockets UDP asynchrones

Fonctionnement des sockets UDP standards en Java

Le but de ce TP est de modifier le comportement en réception des sockets UDP en rendant la réception des paquets asynchrone : un paquet reçu poura être récupéré ultérieurement et le service de réception n'est pas bloquant. Par défaut, la méthode receive est bloquante (sauf si un paquet avait été envoyé mais pas encore lu), elle retourne seulement quand un paquet est reçu.

Classe AsynchronousDatagramSocket

La version asynchrone des sockets UDP sera implémentée par la classe nommée AsynchronousDatagramSocket que vous développerez. Cette classe n'est pas une spécialisation de la classe DatagramSocket (même s'il aurait été possible de spécialiser également cette classe).

Constructeurs

Les deux constructeurs de cette classe à définir sont les suivant et se basent sur ceux de la classe DatagramSocket :

Méthodes

Par rapport à la classe DatagramSocket, le nombre de méthodes est fortement réduit. Nous allons uniquement définir des services basiques d'émission/réception. Les services à implémenter sont au nombre de 5 :

Par souci de simplicité, les exceptions ne sont pas gérées. Une version plus évoluée pourrait par contre prendre en compte les problèmes d'émission/réception sur les sockets.