460401c2578e920b23f2af48ebb933714ff70a60
[nepi.git] / examples / ns3 / multi_host / code / agent.c
1 /* Sample UDP server */\r
2 \r
3 #include <sys/socket.h>\r
4 #include <netinet/in.h>\r
5 #include <stdlib.h>\r
6 #include <stdio.h>\r
7 #include <strings.h>\r
8 \r
9 int main(int argc, char**argv)\r
10 {\r
11   int sockfd,n;\r
12   struct sockaddr_in servaddr,cliaddr;\r
13   socklen_t len;\r
14   char mesg[1000];\r
15 \r
16   printf("DEBUT\n");\r
17   if (argc != 2)\r
18   {\r
19     fprintf(stderr, "usage:  %s <port>\n", argv[0]);\r
20     exit(1);\r
21   }\r
22 \r
23   sockfd = socket(AF_INET,SOCK_DGRAM,0);\r
24   if(sockfd < 0){\r
25     perror("socket");\r
26     exit(1);\r
27   }\r
28 \r
29   bzero(&servaddr,sizeof(servaddr));\r
30   servaddr.sin_family = AF_INET;\r
31   servaddr.sin_addr.s_addr=htonl(INADDR_ANY);\r
32   servaddr.sin_port = htons(atoi(argv[1]));\r
33   if(bind(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr)) < 0){\r
34     perror("bind");\r
35     exit(2);\r
36   }\r
37 \r
38   for (;;)\r
39   {\r
40     len = sizeof(cliaddr);\r
41     n = recvfrom(sockfd,mesg,1000,0,(struct sockaddr *)&cliaddr,&len);\r
42     if(n < 0){\r
43       perror("recvfrom");\r
44       continue;\r
45     }\r
46     if(n==1){\r
47         exit(0);\r
48     }\r
49     mesg[n] = 0;\r
50     printf("[%s]\n",mesg);\r
51   }\r
52   printf("FIN\n");\r
53 }\r