1 |
#ifndef FLATLINE_NET_H |
2 |
#define FLATLINE_NET_H |
3 |
|
4 |
#define pad1_size (sizeof(int64_t) - sizeof(short)) |
5 |
#define pad2_size (128 - (sizeof(short) + pad1_size + sizeof(int64_t))) |
6 |
|
7 |
|
8 |
|
9 |
|
10 |
typedef struct { |
11 |
short ss_family; |
12 |
char pad1[pad1_size]; |
13 |
uint64_t pad64; |
14 |
char pad2[pad2_size]; |
15 |
} sockaddr_storage; |
16 |
|
17 |
typedef struct sockaddr sockaddr; |
18 |
typedef struct sockaddr_in sockaddr_in; |
19 |
typedef sockaddr_storage sockaddr_in6; |
20 |
|
21 |
void NetCatchError(); |
22 |
|
23 |
bool NetUDPServer_Listen(uint16_t port, bool (*packet_callback)(char* data, int datalen, int from)); |
24 |
bool NetUDPServer_Send(sockaddr* address, char* data, int datalen); |
25 |
|
26 |
int NetUDPSocket_Create(uint16_t port, sockaddr_in* address); |
27 |
int NetTCPSocket_Create(uint16_t port, sockaddr_in* address); |
28 |
int NetUDPSocket_Send(int socket, const sockaddr* address, const char* data, int datalen); |
29 |
void NetUDPSocket_Close(int sock); |
30 |
bool NetUDPSocket_Recieve(int socket, sockaddr_storage* address, char* data, uint16_t* datalen); |
31 |
|
32 |
#endif |