1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #include<errno.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//#include <stddef.h>
//#include <unistd.h>
//#include <time.h>
//#include <sys/time.h>
#define PORTS 5100
/*struct evenement
{ char id[50];
} evenement;*/
char reponse[10]="excellent";
char consultation(char message)
{
printf("message traité!!\n");
return(reponse);
}
int main(void)
{
struct sockaddr_in addr_serveur, addr_client;
int lg,n;
int sock;
sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
{ perror("erreur de creation socket");
exit(1);
};
/* mise a zero de la mémoire d'adresse. */
bzero(&addr_serveur, sizeof(addr_serveur));
/* preparation de la structure adresse*/
addr_serveur.sin_family=AF_INET;
addr_serveur.sin_port =htons(PORTS);
addr_serveur.sin_addr.s_addr=INADDR_ANY; /*b n'import quelle adresse*/
if( bind(sock,(struct sockaddr *)&addr_serveur, sizeof(addr_serveur))<0)
{ perror("Erreur d'attachement: appel BIND");
exit (2);
};
for(;;)
{ char message[50]="";
char placelibre;
lg=sizeof(addr_client);
n=rcvfrome(sock,message,50,0,(struct sockaddr *)&addr_client,&lg);
placelibre=consultaion(message);
sendto(sock,&placelibre,10,0,(struct sockaddr *)&addr_client,lg);
}
close(sock);
} |
Partager