diff --git a/examples/hello_client_v6_udp.c b/examples/hello_client_v6_udp.c new file mode 100644 index 0000000..6426fb5 --- /dev/null +++ b/examples/hello_client_v6_udp.c @@ -0,0 +1,31 @@ +#include +#include + +#define SOCK_IMPLEMENTATION +#include "sock.h" + +int main(void) +{ + bool err = false; + + Sock *s = sock_create(SOCK_IPV6, SOCK_UDP); + if (s == NULL) { err = "create"; goto defer; } + + SockAddr addr = sock_addr("::1", 6969); + + const char *msg = "Hello from client!"; + char buf[128]; + memset(buf, 0, sizeof(buf)); + + sock_sendto(s, msg, strlen(msg), addr); + sock_recvfrom(s, buf, sizeof(buf), NULL); + + printf("%s:%d: %.*s\n", addr.str, addr.port, + (int)sizeof(buf), buf); + +defer: + if (err) sock_log_error(s); + sock_close(s); + + return 0; +} diff --git a/examples/hello_server_v6_udp.c b/examples/hello_server_v6_udp.c new file mode 100644 index 0000000..851f9ea --- /dev/null +++ b/examples/hello_server_v6_udp.c @@ -0,0 +1,32 @@ +#include + +#define SOCK_IMPLEMENTATION +#include "sock.h" + +int main(void) +{ + bool err = false; + + Sock *server = sock_create(SOCK_IPV6, SOCK_UDP); + if (server == NULL) { err = true; goto close; } + + SockAddr addr = sock_addr("::", 6969); + if (!sock_bind(server, addr)) { err = true; goto close; } + + char buf[128]; + memset(buf, 0, sizeof(buf)); + const char *msg = "Hello from server!"; + SockAddr client_addr = {0}; + + sock_recvfrom(server, buf, sizeof(buf), &client_addr); + sock_sendto(server, msg, strlen(msg), client_addr); + + printf("%s:%d: %.*s\n", client_addr.str, client_addr.port, + (int)sizeof(buf), buf); + +close: + if (err) sock_log_error(server); + sock_close(server); + + return 0; +}