34 #include <netdb.h> |
34 #include <netdb.h> |
35 |
35 |
36 #ifdef __cplusplus |
36 #ifdef __cplusplus |
37 extern "C" { |
37 extern "C" { |
38 #endif |
38 #endif |
|
39 |
|
40 #define NETCODE_GAMEINFO 1 |
39 |
41 |
40 typedef struct { |
42 typedef struct { |
41 int fd; |
43 int fd; /* -1, if we are the client */ |
42 struct sockaddr address; |
44 struct sockaddr address; |
43 socklen_t address_len; |
45 socklen_t address_len; |
44 } Client; |
46 } Client; |
45 |
47 |
46 typedef struct { |
48 typedef struct { |
47 int fd; |
49 int fd; |
48 struct addrinfo* info; |
50 struct addrinfo* info; /* NULL, if we are the server */ |
49 Client *client; |
51 Client *client; |
50 } Server; |
52 } Server; |
51 |
53 |
52 int net_create(Server *server, char* port); |
54 int net_create(Server *server, char* port); |
53 int net_find(Server *server, char* host, char* port); |
55 int net_find(Server *server, char* host, char* port); |
54 |
56 |
55 int net_listen(Server *server); |
57 int net_listen(Server *server); |
56 int net_destroy(Server *server); |
58 int net_destroy(Server *server); |
57 int net_connect(Server *server); |
59 int net_connect(Server *server); |
58 |
60 |
|
61 void net_send(int socket, uint32_t code, void *data, size_t len); |
|
62 int net_recieve_code(int socket); |
|
63 void net_recieve_data(int socket, void *data, size_t len); |
|
64 |
59 |
65 |
60 #ifdef __cplusplus |
66 #ifdef __cplusplus |
61 } |
67 } |
62 #endif |
68 #endif |
63 |
69 |