From 0b86520b9ff166cd285d077d3d8192653e7d95e9 Mon Sep 17 00:00:00 2001 From: Oxore Date: Thu, 7 Dec 2023 00:08:57 +0300 Subject: Initial commit --- server.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 server.c (limited to 'server.c') diff --git a/server.c b/server.c new file mode 100644 index 0000000..e35a9b5 --- /dev/null +++ b/server.c @@ -0,0 +1,36 @@ +// Initially based on https://stackoverflow.com/a/35570418 + +#include +#include +#include +#include +#include + +int main(void) +{ + int const fd = socket(AF_INET, SOCK_DGRAM, 0); + if (fd < 0) { + perror("socket failed"); + return 1; + } + struct sockaddr_in const serveraddr = { + .sin_family = AF_INET, + .sin_port = htons(50037), + .sin_addr.s_addr = htonl(INADDR_ANY), + }; + if (bind(fd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0) { + perror("bind failed"); + return 1; + } + for (;;) { + char buffer[200]; + int const length = recvfrom(fd, buffer, sizeof(buffer) - 1, 0, NULL, 0); + if (length < 0) { + perror("recvfrom failed"); + break; + } + buffer[length] = '\0'; + printf("%d bytes: '%s'\n", length, buffer); + } + close(fd); +} -- cgit v1.2.3