L'objectif de ce TP est d'écrire un client et un serveur simples fonctionnant en mode non connecté (UDP). Les exercices proposés sont détaillés après un résumé des fonctions à utiliser.
Les fonctions utiles sont données ci-dessous.
Comme toutes les sockets, une socket UDP est créée par la fonction socket(2)
qu'on utilisera de la manière suivante :
udp_socket = socket(AF_INET, SOCK_DGRAM, 0);
Voir la page du manuel udp(7)
pour plus de détails.
Hormis la création de la socket, il n'y a rien à faire pour le client, si ce n'est d'initialiser un objet de type struct sockaddr_in
avec l'adresse et le numéro de port du serveur pour pouvoir l'utiliser ensuite lors de l'envoi de messages.
Se référer au TP4 pour l'initialisation d'un objet de type struct sockaddr_in
.
Comme en TCP (cf. TP4), la socket doit être liée à l'adresse et au numéro de port souhaité avec la fonction bind(2)
. Le serveur peut ensuite se mettre immédiatement en attente de messages.
Pour envoyer un message UDP, on utilisera la fonction :
ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen);
où :