diff options
author | kdx <kikoodx@paranoici.org> | 2023-08-30 05:55:28 +0200 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2023-08-30 05:55:28 +0200 |
commit | f217acf535a8d3557b08345155d3016e86aa58ae (patch) | |
tree | d018a6e38f40610408c9b722fa6bba3dcc7293d1 | |
parent | 26c07567cce84277d024317d7c0caff78b335fce (diff) | |
download | premovechess-f217acf535a8d3557b08345155d3016e86aa58ae.tar.gz |
simple data transfer
-rw-r--r-- | inc/netcode.h | 6 | ||||
-rw-r--r-- | src/main.c | 15 | ||||
-rw-r--r-- | src/netcode.c | 14 |
3 files changed, 28 insertions, 7 deletions
diff --git a/inc/netcode.h b/inc/netcode.h index 148a519..8d79619 100644 --- a/inc/netcode.h +++ b/inc/netcode.h @@ -1,12 +1,12 @@ #pragma once #include <stdint.h> -#include <stddef.h> int netcode_init_host(uint16_t port); int netcode_init_client(const char *host, uint16_t port); void netcode_deinit(void); +int netcode_host(void); -int netcode_send(void *data, size_t size); -int netcode_recv(void *data, size_t size); +int netcode_send(void *data, int size); +int netcode_recv(void *data, int size); int netcode_ping(void); @@ -11,20 +11,35 @@ main(int argc, char **argv) { (void)argc, (void)argv; + char p1_white; if (argc > 1) { log_info("client, connecting to %s", argv[1]); if (netcode_init_client(argv[1], 8177)) { log_error("netcode_init_client failed"); return -1; } + if (netcode_recv(&p1_white, 1)) { + log_error("netcode_send failed"); + netcode_deinit(); + return -1; + } } else { log_info("host"); if (netcode_init_host(8177)) { log_error("netcode_init_host failed"); return -1; } + srand(time(NULL)); + p1_white = rand() % 2; + if (netcode_send(&p1_white, 1)) { + log_error("netcode_send failed"); + netcode_deinit(); + return -1; + } } + log_info("i'm %s", (p1_white ^ netcode_host()) ? "black" : "white"); + if (TZR_Init(.width=DWIDTH, .height=DHEIGHT, .target_fps=FPS)) return 1; if (atexit(deinit)) { diff --git a/src/netcode.c b/src/netcode.c index 5ae5990..3b77fa5 100644 --- a/src/netcode.c +++ b/src/netcode.c @@ -81,9 +81,15 @@ netcode_deinit(void) } int -netcode_send(void *data, size_t size) +netcode_host(void) { - if (SDLNet_TCP_Send(_sock_other, data, size) < 0) { + return (_sock_host != NULL); +} + +int +netcode_send(void *data, int size) +{ + if (SDLNet_TCP_Send(_sock_other, data, size) != size) { log_error("%s", SDLNet_GetError()); return -1; } @@ -91,9 +97,9 @@ netcode_send(void *data, size_t size) } int -netcode_recv(void *data, size_t size) +netcode_recv(void *data, int size) { - if (SDLNet_TCP_Recv(_sock_other, data, size) < 0) { + if (SDLNet_TCP_Recv(_sock_other, data, size) != size) { log_error("%s", SDLNet_GetError()); return -1; } |