diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-10-26 13:19:17 +0200 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-10-26 13:19:17 +0200 |
commit | cafda3e8a60043629cd9a51490496b8cfd3cd921 (patch) | |
tree | 09389746ea5a0ff37e772abbf7275da306456606 /v1/recv.c | |
parent | 90c30017e035810321083b3beb772ca37a1dede8 (diff) |
Put v2 code in root folder
Diffstat (limited to 'v1/recv.c')
-rw-r--r-- | v1/recv.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/v1/recv.c b/v1/recv.c deleted file mode 100644 index 042d8a9..0000000 --- a/v1/recv.c +++ /dev/null @@ -1,59 +0,0 @@ -// Minimal server implementation for probing out things - -#include "common.h" -#include <arpa/inet.h> -#include <assert.h> -#include <poll.h> -#include <sys/socket.h> -#include <unistd.h> - -int main(void) -{ - u32 serverfd, clientfd; - u8 on = 1; - - const struct sockaddr_in address = { - AF_INET, - htons(PORT), - {0}, - }; - - serverfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - setsockopt(serverfd, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on)); - u32 err = bind(serverfd, (struct sockaddr *)&address, sizeof(address)); - assert(err == 0); - - err = listen(serverfd, 256); - assert(err == 0); - - clientfd = accept(serverfd, 0, 0); - assert(clientfd != -1); - - struct pollfd fds[1] = { - {clientfd, POLLIN, 0}, - }; - - for (;;) { - int ret = poll(fds, 1, 50000); - assert(ret != -1); - - if (fds[0].revents & POLLIN) { - u8 recv_buf[BUF_MAX]; - u32 nrecv = recv(clientfd, recv_buf, sizeof(recv_buf), 0); - assert(nrecv >= 0); - - writef("client(%d): %d bytes received.\n", clientfd, nrecv); - if (nrecv == 0) { - writef("client(%d): disconnected.\n", clientfd); - fds[0].fd = -1; - fds[0].revents = 0; - err = close(clientfd); - assert(err == 0); - - return 0; - } - } - } - - return 0; -} |