diff options
author | Andrew Shadura <andrew@shadura.me> | 2014-01-28 15:21:50 +0100 |
---|---|---|
committer | Andrew Shadura <andrew@shadura.me> | 2014-01-28 15:21:50 +0100 |
commit | 51addbcf27d7b06dae80a0e39e5f5f83e94dd8ae (patch) | |
tree | 3d00bef2d26f97257ec6f4835505cd300054a1e3 /src/examples/vio-udplistener | |
parent | 1ed00f1a2893b43195f3fc747988da0bf6006797 (diff) |
Update to libmowgli 2.0.0
Diffstat (limited to 'src/examples/vio-udplistener')
-rw-r--r-- | src/examples/vio-udplistener/Makefile | 7 | ||||
-rw-r--r-- | src/examples/vio-udplistener/vio-udplistener.c | 45 |
2 files changed, 52 insertions, 0 deletions
diff --git a/src/examples/vio-udplistener/Makefile b/src/examples/vio-udplistener/Makefile new file mode 100644 index 0000000..1be3936 --- /dev/null +++ b/src/examples/vio-udplistener/Makefile @@ -0,0 +1,7 @@ +PROG_NOINST = vio-udplistener${PROG_SUFFIX} +SRCS = vio-udplistener.c + +include ../../../buildsys.mk + +CPPFLAGS += -I../../libmowgli +LIBS += -L../../libmowgli -lmowgli-2 diff --git a/src/examples/vio-udplistener/vio-udplistener.c b/src/examples/vio-udplistener/vio-udplistener.c new file mode 100644 index 0000000..9de4e69 --- /dev/null +++ b/src/examples/vio-udplistener/vio-udplistener.c @@ -0,0 +1,45 @@ +/* vio-udplistener.c - An example of the VIO API + * To use: nc -u localhost, and then type stuff and hit enter. :p + * This example is public domain. + */ + +#include <mowgli.h> + +#define BUFSIZE 2048 + +#define PROTO AF_INET6 +#define LISTEN "::ffff:127.0.0.1" /* 6to4 mapping */ +#define PORT 31337 + +#define ECHOBACK "Echo: " + +int main (void) +{ + mowgli_vio_t *vio = mowgli_vio_create(NULL); + mowgli_vio_sockaddr_t addr; + + mowgli_vio_sockaddr_create(&addr, PROTO, LISTEN, 31337); + + if (mowgli_vio_socket(vio, PROTO, SOCK_DGRAM, 0)) + return EXIT_FAILURE; + + if (mowgli_vio_bind(vio, &addr)) + return EXIT_FAILURE; + + while (true) + { + char buf[BUFSIZE] = ""; + mowgli_vio_sockdata_t sockinfo; + + mowgli_vio_recvfrom(vio, buf, sizeof(buf), &addr); + + mowgli_vio_sockaddr_info(&addr, &sockinfo); + + printf("Recieved bytes from addr [%s]:%hu: %s", sockinfo.host, sockinfo.port, buf); + + mowgli_vio_sendto(vio, ECHOBACK, sizeof(ECHOBACK), &addr); + mowgli_vio_sendto(vio, buf, strlen(buf), &addr); + } + + return EXIT_SUCCESS; /* Not reached */ +} |