Réseau Android

Un réseau obligatoirement multithread

De par sa nature bloquante, toute opération sur le réseau à partir d'une application Android se doit d'être à l’extérieur du flot d’exécution principal du programme. Cela signifie que toute opération qu'elle soit en écriture ou en lecture sur le socket UDP de l'application doit être exécutée par un thread dédié. Nous avons donc déporté le formatage de trames ainsi que le réseau de l'application dans des classes dédiée à ces opérations et nous avons dû mettre en place une tâche précise pour l'écriture et la réception de trames UDP dans l'application.

En suivant le même format que nous avons utilisé pour le simulateur, chaque message est préparé dans une méthode prenant en paramètre le type de trames que l'on souhaite envoyer qui s’occupe alors de créer la trame en conséquence.

Ainsi à chaque action utilisateur sur l'interface (Clic sur un bouton par exemple), un thread est lancé et c'est donc ce dernier qui va s'occuper de créer la trame et de l'envoyer sur le socket. L'écriture sur le socket étant atomique nous n'avons pas eu besoin de mettre en place de synchronisation particulière à ce niveau.