/* socket Internet de type datagramme - COTE EMETTEUR */ /* gcc em_UDP.c -o em_UDP -lsocket -lnsl */ #include #include #include #include #include #include #include #define NUM_PORT_REC 9001 main(int argc, char *argv[]) { int sock, i, lg_mes; struct sockaddr_in nom_rec; struct hostent *hp; char message[100]; /* construction du nom externe du socket local */ if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) { printf ("erreur creation socket\n"); exit (1); } /* construction du nom externe du socket recepteur */ if ((hp = gethostbyname("192.168.101.101")) == NULL) { printf ("erreur gethostbyname\n"); exit (1); } nom_rec.sin_family = AF_INET; nom_rec.sin_port = NUM_PORT_REC; bcopy(hp->h_addr, (char *)&(nom_rec.sin_addr.s_addr), hp->h_length); /* construction et envoi des messages */ strcpy(message,"Toulouse"); lg_mes = strlen(message); for (i=0; i< 5; i++) { sendto(sock,message,lg_mes,0,(struct sockaddr*)&nom_rec,sizeof(nom_rec)); printf ("message envoye : %s\n", message); } sleep(1); /* fermeture du socket */ close(sock); exit(0); }