diff options
author | 2018-11-13 12:29:53 +0000 | |
---|---|---|
committer | 2018-11-13 12:29:53 +0000 | |
commit | c44fe256a1f1812dc511697808c99dcc92d93068 (patch) | |
tree | 0b73728001d8e37e4a5a873430e826f64a8207a0 /demo/nginx_proxy/demo-2/udpserver.c | |
parent | 89615f166692b82c3d19d0d73ca3028241d923d9 (diff) | |
parent | 6b11ecb07f5612819635eb48ec26d94d1fc64cf1 (diff) |
Merge "Chore: NGINX demo with multi stack and multi protocol (vpp-hoststck, lwip, kernel) (tcp, udp)"
Diffstat (limited to 'demo/nginx_proxy/demo-2/udpserver.c')
-rw-r--r-- | demo/nginx_proxy/demo-2/udpserver.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/demo/nginx_proxy/demo-2/udpserver.c b/demo/nginx_proxy/demo-2/udpserver.c new file mode 100644 index 0000000..456c7fc --- /dev/null +++ b/demo/nginx_proxy/demo-2/udpserver.c @@ -0,0 +1,55 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <arpa/inet.h> +#include <netinet/in.h> + +#define PORT 53 +#define MAXLINE 1024 + +int +main () +{ + int sockfd; + char buffer[MAXLINE]; + char *hello = "Hello from server"; + + struct sockaddr_in servaddr, cliaddr; + char name[128] = { 0 }; + + // Creating socket file descriptor + if ((sockfd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) + { + perror ("socket creation failed"); + exit (EXIT_FAILURE); + } + + memset (&servaddr, 0, sizeof (servaddr)); + memset (&cliaddr, 0, sizeof (cliaddr)); + + // Filling server information + servaddr.sin_family = AF_INET; // IPv4 + servaddr.sin_addr.s_addr = inet_addr ("182.167.50.30"); + servaddr.sin_port = htons (PORT); + + if (bind (sockfd, (const struct sockaddr *) &servaddr, + sizeof (servaddr)) < 0) + { + perror ("bind failed"); + exit (EXIT_FAILURE); + } + + int len, n; + n = recvfrom (sockfd, (char *) buffer, MAXLINE, + MSG_WAITALL, (struct sockaddr *) &cliaddr, &len); + buffer[n] = '\0'; + (void) gethostname (name, 127); + printf ("Client : %s \n", buffer); + sendto (sockfd, (const char *) hello, strlen (hello), + MSG_CONFIRM, (const struct sockaddr *) &cliaddr, len); + printf ("%s\n", hello); + return 0; +} |