From 7b21727285e50b0b050c4ddd70d07542229c5366 Mon Sep 17 00:00:00 2001 From: pants Date: Mon, 21 Sep 2026 14:17:03 -0700 Subject: init --- c/webserver.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 c/webserver.c (limited to 'c/webserver.c') diff --git a/c/webserver.c b/c/webserver.c new file mode 100644 index 0000000..5de519c --- /dev/null +++ b/c/webserver.c @@ -0,0 +1,29 @@ +#include +#include +#include +#include +#include +#include + +// followed that one guys tutorial. can only send 256 bytes per request +void main() { + int sock = socket(AF_INET, SOCK_STREAM, 0); + struct sockaddr_in addr = { + AF_INET, + 0x901f, + 0 + }; + bind(sock, &addr, sizeof(addr)); + listen(sock, 32); + int client_fd = accept(sock, 0, 0); + char buffer[256] = {0}; + recv(client_fd, buffer, 256, 0); + + char* file = buffer + 5; + *strchr(file, ' ') = 0; + int opened_fd = open(file, O_RDONLY); + sendfile(client_fd, opened_fd, 0, 256); + close(opened_fd); + close(client_fd); + close(sock); +} -- cgit v1.2.3