source: Daodan/Flatline/src/Flatline.h@ 481

Last change on this file since 481 was 460, checked in by rossy, 15 years ago
File size: 1.6 KB
Line 
1#pragma once
2
3#include <stdlib.h>
4#include <stdio.h>
5#define DDrStartupMessage printf
6
7#include <string.h>
8#include <stdbool.h>
9#include <stdint.h>
10
11#define thread __thread
12
13#ifdef WIN32
14#include <winsock2.h>
15#include "Flatline_Win32.h"
16#else
17#include <sys/ioctl.h>
18#include <sys/types.h>
19#include <sys/socket.h>
20#include <unistd.h>
21#include <stropts.h>
22#include <arpa/inet.h>
23#include <netinet/in.h>
24
25#define NetPlatform_Initalize() /* */
26#define NetPlatform_Shutdown() /* */
27#define closesocket close
28#define ioctlsocket ioctl
29#endif
30
31#define pad1_size (sizeof(int64_t) - sizeof(short))
32#define pad2_size (128 - (sizeof(short) + pad1_size + sizeof(int64_t)))
33
34typedef struct {
35 short ss_family;
36 char pad1[pad1_size];
37 uint64_t pad64;
38 char pad2[pad2_size];
39} sockaddr_storage;
40
41typedef struct sockaddr sockaddr;
42typedef struct sockaddr_in sockaddr_in;
43
44bool NetUDPServer_Listen(uint16_t port, bool (*packet_callback)(char* data, int datalen, int from));
45bool NetUDPServer_Send(sockaddr* address, char* data, int datalen)
46
47int NetUDPSocket_Create(uint16_t port);
48bool NetUDPSocket_Send(int socket, int ip, uint16_t port, char* data, int datalen);
49void NetUDPSocket_Close(int sock);
50
51typedef struct {
52 char signature[8];
53 uint16_t protocol_version;
54 char data[0];
55} handshake_packet;
56
57typedef struct {
58 char country[2];
59 char name[256];
60} connect_send; //signature="CONNECT\0"
61
62typedef struct {
63 char name[256];
64 uint32_t numplayers; //signature="STATUS\0\0"
65} status_recv;
66
67
68bool FLrListen_PacketCallback(char* data, int datalen, int from);
69bool FLrListen_Run();
Note: See TracBrowser for help on using the repository browser.