Un exemple de client :
void *creationAddresseUDP(char *hote,char *service){
struct addrinfo precisions,*resultat,*origine;
int statut;
/* Creation de l'adresse de socket */
memset(&precisions,0,sizeof precisions);
precisions.ai_family=AF_UNSPEC;
precisions.ai_socktype=SOCK_DGRAM;
statut=getaddrinfo(hote,service,&precisions,&origine);
if(statut<0){ perror("creationAddressUDP.getaddrinfo"); exit(EXIT_FAILURE); }
struct addrinfo *p;
for(p=origine,resultat=origine;p!=NULL;p=p->ai_next)
if(p->ai_family==AF_INET6){ resultat=p; break; }
/* Copie de la structure adresse */
struct sockaddr_storage *adresse=malloc(sizeof(struct sockaddr_storage));
if(adresse==NULL){ perror("creationAddressUDP.malloc"); exit(EXIT_FAILURE); }
memcpy(adresse,resultat->ai_addr,resultat->ai_addrlen);
/* Liberation de la structure d'informations */
freeaddrinfo(origine);
return adresse;
}
void messageUDP(int s,void *adresse,unsigned char *message,int taille){
int nboctets=sendto(s,message,taille,0,(struct sockaddr *)adresse,sizeof(struct sockaddr_storage));
if(nboctets<0){ perror("messageUDP.sento"); exit(EXIT_FAILURE); }
}