summaryrefslogtreecommitdiff
path: root/src/net.h
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2011-01-15 18:44:52 +0100
committerReiner Herrmann <reiner@reiner-h.de>2011-01-15 18:44:52 +0100
commit8d1391507cbb943ecf17a8e4097f524da2505e32 (patch)
treefa23300471c8359fed3e6bce8279f1b3830200f1 /src/net.h
parentd9b86b44ff96e7ca87af4c5dee7a61f61b55f603 (diff)
1. network fix: send also packet length in every packet after packet type
to be able to determine exact amount to recv 2. implement functions for sending/receiving dealt hands
Diffstat (limited to 'src/net.h')
-rw-r--r--src/net.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/net.h b/src/net.h
index 907412d..018a8e5 100644
--- a/src/net.h
+++ b/src/net.h
@@ -3,12 +3,21 @@
#include <stdint.h>
#include "player.h"
+#include "hand.h"
+
+/*
+ * Packet format:
+ * first byte: msg_type_t
+ * second byte: packet length
+ * followed by payload
+ */
typedef enum
{
// Specify message type identifier here
msg_type_hello = 0x0,
- msg_type_start_game = 0x1
+ msg_type_start_game = 0x1,
+ msg_type_deal_cards = 0x2
} msg_type_t;
typedef struct
@@ -23,11 +32,15 @@ typedef struct
uint8_t payload[];
} msg_t;
+
+// Server side functions
int server_start(const char* port);
int* server_get_players(int serversock, const uint8_t count);
void server_start_game(int* clients, const uint8_t clientcount, const struct player_list* players);
+void server_deal_cards(int sock, const hand h);
void* server_recv(int sock, uint8_t wanted);
+// Client side functions
int client_connect_server(const char* host, const char* port);
void client_hello(int sock, const char* username);
void* client_recv(int sock, uint8_t wanted);