From 6b11ecb07f5612819635eb48ec26d94d1fc64cf1 Mon Sep 17 00:00:00 2001 From: swarupn Date: Tue, 6 Nov 2018 19:36:20 +0530 Subject: Chore: NGINX demo with multi stack and multi protocol (vpp-hoststck, lwip, kernel) (tcp, udp) Change-Id: I3feb3a88b75b8292e0d7df77e8ed41ee0e2fc0aa Signed-off-by: swarupn --- demo/nginx_proxy/demo-2/udpserver.c | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 demo/nginx_proxy/demo-2/udpserver.c (limited to 'demo/nginx_proxy/demo-2/udpserver.c') 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 +#include +#include +#include +#include +#include +#include +#include + +#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; +} -- cgit