summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-08-30 05:55:28 +0200
committerkdx <kikoodx@paranoici.org>2023-08-30 05:55:28 +0200
commitf217acf535a8d3557b08345155d3016e86aa58ae (patch)
treed018a6e38f40610408c9b722fa6bba3dcc7293d1
parent26c07567cce84277d024317d7c0caff78b335fce (diff)
downloadpremovechess-f217acf535a8d3557b08345155d3016e86aa58ae.tar.gz
simple data transfer
-rw-r--r--inc/netcode.h6
-rw-r--r--src/main.c15
-rw-r--r--src/netcode.c14
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);
diff --git a/src/main.c b/src/main.c
index b56f427..2eacd47 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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;
}