From 254561efc7835bf21cdb76304b1a5873973e6776 Mon Sep 17 00:00:00 2001 From: seajee Date: Fri, 25 Apr 2025 18:19:43 +0200 Subject: [PATCH] Update examples --- examples/hello_client.c | 5 ----- examples/hello_server.c | 8 -------- examples/udp_client.c | 25 ++++++++++++------------- examples/udp_server.c | 28 ++++++++++++++++++---------- 4 files changed, 30 insertions(+), 36 deletions(-) diff --git a/examples/hello_client.c b/examples/hello_client.c index f217860..82d8ac7 100644 --- a/examples/hello_client.c +++ b/examples/hello_client.c @@ -10,26 +10,21 @@ int main(void) Sock *sock = sock_create(SOCK_IPV4, SOCK_TCP); if (sock == NULL) { err = "create"; goto defer; } - printf("create\n"); SockAddr addr = sock_addr("127.0.0.1", 6969); if (!sock_connect(sock, addr)) { err = "connect"; goto defer; } - printf("connect\n"); const char *msg = "Hello from client!"; char buf[128]; memset(buf, 0, sizeof(buf)); sock_send(sock, msg, strlen(msg)); - printf("send\n"); sock_recv(sock, buf, sizeof(buf)); - printf("recv\n"); printf("%.*s\n", (int)sizeof(buf), buf); defer: sock_close(sock); - printf("close\n"); fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno)); return 0; diff --git a/examples/hello_server.c b/examples/hello_server.c index 161079a..c25c702 100644 --- a/examples/hello_server.c +++ b/examples/hello_server.c @@ -9,34 +9,26 @@ int main(void) { Sock *sock = sock_create(SOCK_IPV4, SOCK_TCP); if (sock == NULL) { err = "create"; goto defer; } - printf("create\n"); SockAddr addr = sock_addr("0.0.0.0", 6969); if (!sock_bind(sock, addr)) { err = "bind"; goto defer; } - printf("bind\n"); if (!sock_listen(sock, 16)) { err = "listen"; goto defer; } - printf("listen\n"); Sock *client = sock_accept(sock); if (client == NULL) { err = "accept"; goto defer; } - printf("accept\n"); const char *msg = "Hello from server!"; char buf[128]; memset(buf, 0, sizeof(buf)); sock_send(client, msg, strlen(msg)); - printf("send\n"); sock_recv(client, buf, sizeof(buf)); - printf("recv\n"); printf("%.*s\n", (int)sizeof(buf), buf); sock_close(client); - printf("close\n"); defer: sock_close(sock); - printf("close\n"); fprintf(stderr, "ERROR: %s: %s\n", err, strerror(errno)); return 0; diff --git a/examples/udp_client.c b/examples/udp_client.c index f8d6125..21ca31b 100644 --- a/examples/udp_client.c +++ b/examples/udp_client.c @@ -1,29 +1,28 @@ #include +#include #define SOCK_IMPLEMENTATION #include "sock.h" int main(void) { - Sock *sock = sock_create(SOCK_IPV4, SOCK_UDP); - if (sock == NULL) { + Sock *client = sock_create(SOCK_IPV4, SOCK_UDP); + if (client == NULL) { perror("sock_create"); return 1; } + SockAddr server_addr = sock_addr("127.0.0.1", 6969); const char *msg = "Hello from client!"; - sock_sendto(sock, msg, strlen(msg), sock_addr("127.0.0.1", 6969)); + ssize_t sent = sock_sendto(client, msg, strlen(msg), server_addr); + if (sent < 0) { + perror("sock_sendto"); + sock_close(client); + return 1; + } - SockAddr server_addr; - char buf[128]; - memset(buf, 0, sizeof(buf)); - - sock_recvfrom(sock, buf, sizeof(buf), &server_addr); - - printf("Received \"%.*s\" from %s:%d\n", (int)sizeof(buf), buf, - server_addr.str, server_addr.port); - - sock_close(sock); + printf("Sent message: %s\n", msg); + sock_close(client); return 0; } diff --git a/examples/udp_server.c b/examples/udp_server.c index 31fbdf3..6713a20 100644 --- a/examples/udp_server.c +++ b/examples/udp_server.c @@ -1,4 +1,7 @@ #include +#include +#include +#include #define SOCK_IMPLEMENTATION #include "sock.h" @@ -11,25 +14,30 @@ int main(void) return 1; } - if (!sock_bind(server, sock_addr("0.0.0.0", 6969))) { + SockAddr server_addr = sock_addr("0.0.0.0", 6969); + if (!sock_bind(server, server_addr)) { perror("sock_bind"); sock_close(server); return 1; } + printf("Server is listening on port %d...\n", server_addr.port); + SockAddr client_addr; - char buf[128]; - memset(buf, 0, sizeof(buf)); + char buf[64]; - sock_recvfrom(server, buf, sizeof(buf), &client_addr); + while (true) { + ssize_t rec = sock_recvfrom(server, buf, sizeof(buf), &client_addr); + if (rec < 0) { + perror("sock_recvfrom"); + break; + } - printf("Received \"%.*s\" from %s:%d\n", (int)sizeof(buf), buf, - client_addr.str, client_addr.port); - - const char *msg = "Hello from server!"; - sock_sendto(server, msg, strlen(msg), client_addr); + buf[rec] = '\0'; + printf("Received from %s:%d \"%s\"\n", client_addr.str, + client_addr.port, buf); + } sock_close(server); - return 0; }