From b2eda41ac93483bba5c8a266b46c37466060b0a4 Mon Sep 17 00:00:00 2001 From: adjoly Date: Thu, 18 Sep 2025 21:47:32 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8F=97=EF=B8=8F=E3=80=8D=20wip:?= =?UTF-8?q?=20aaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh=20why?= =?UTF-8?q?=20=3F=3F=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3 | 22 ---------------------- a.out | Bin 0 -> 20128 bytes flake.nix | 4 ++++ mini_serv.c | 37 +++++++++++++++++++++++++++++++------ 4 files changed, 35 insertions(+), 28 deletions(-) delete mode 100644 3 create mode 100755 a.out diff --git a/3 b/3 deleted file mode 100644 index 681b908..0000000 --- a/3 +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -char recv_buf[3000]; -char send_buf[3000]; - -int maxfd; -int lastid = 0; -int sockfd; - -int main(int ac, char **av) { - - sockfd = socket(AF_INET, SOCK_STREAM, 0); - - while (1) { - } -} diff --git a/a.out b/a.out new file mode 100755 index 0000000000000000000000000000000000000000..ad79be9c38732c65f18f1685d84544798b220111 GIT binary patch literal 20128 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 HM6&+@Q;Ewz literal 0 HcmV?d00001 diff --git a/flake.nix b/flake.nix index 4b2a145..8695905 100644 --- a/flake.nix +++ b/flake.nix @@ -34,6 +34,10 @@ ]; packages = with pkgs; [ nixfmt-rfc-style + glibcInfo + man + man-pages + man-pages-posix valgrind gdb ]; diff --git a/mini_serv.c b/mini_serv.c index 1a09525..b91d3c6 100644 --- a/mini_serv.c +++ b/mini_serv.c @@ -22,6 +22,21 @@ int sockfd; fd_set main_fd, read_fd; +void append_client(int cli_fd) { + lastid++; + clients[cli_fd].id = lastid; + clients[cli_fd].msg = NULL; + FD_SET(cli_fd, &main_fd); +} + +void send_all() { + size_t len = strlen(send_buf); + + for (int i = 0; i <= maxfd; i++) + if (FD_ISSET(i, &read_fd)) + send(i, send_buf, len, 0); +} + int send_error(void) { for (int i = 0; i < FD_SETSIZE; i++) if (FD_ISSET(i, &main_fd)) @@ -37,17 +52,16 @@ int main(int ac, char **av) { return (EXIT_FAILURE); } - int len; + socklen_t len; struct sockaddr_in servaddr, cli; sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) return (send_error()); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = htonl(2130706433); //127.0.0.1 - servaddr.sin_port = htons(atoi(av[1])); - + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = htonl(2130706433); // 127.0.0.1 + servaddr.sin_port = htons(atoi(av[1])); if (bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) != 0) return (send_error()); @@ -56,6 +70,7 @@ int main(int ac, char **av) { return (send_error()); FD_ZERO(&main_fd); + FD_ZERO(&read_fd); FD_SET(sockfd, &main_fd); maxfd = sockfd; @@ -68,9 +83,19 @@ int main(int ac, char **av) { for (int i = 0; i <= maxfd; i++) { if (FD_ISSET(i, &read_fd)) { if (i == sockfd) { + len = sizeof(cli); + int cli_fd = accept(i, (struct sockaddr *)&cli, &len); + if (cli_fd < 0) + return (send_error()); + if (cli_fd > maxfd) + maxfd = cli_fd; + append_client(cli_fd); + bzero(send_buf, 3000); + sprintf(send_buf, "server: client %d just arrived\n", + lastid); + send_all(); } else { - } } }