ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/Flatline/src/Flatline.h
Revision: 460
Committed: Tue Oct 6 11:21:11 2009 UTC (16 years ago) by rossy
Content type: text/x-chdr
File size: 1637 byte(s)
Log Message:

File Contents

# Content
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
34 typedef struct {
35 short ss_family;
36 char pad1[pad1_size];
37 uint64_t pad64;
38 char pad2[pad2_size];
39 } sockaddr_storage;
40
41 typedef struct sockaddr sockaddr;
42 typedef struct sockaddr_in sockaddr_in;
43
44 bool NetUDPServer_Listen(uint16_t port, bool (*packet_callback)(char* data, int datalen, int from));
45 bool NetUDPServer_Send(sockaddr* address, char* data, int datalen)
46
47 int NetUDPSocket_Create(uint16_t port);
48 bool NetUDPSocket_Send(int socket, int ip, uint16_t port, char* data, int datalen);
49 void NetUDPSocket_Close(int sock);
50
51 typedef struct {
52 char signature[8];
53 uint16_t protocol_version;
54 char data[0];
55 } handshake_packet;
56
57 typedef struct {
58 char country[2];
59 char name[256];
60 } connect_send; //signature="CONNECT\0"
61
62 typedef struct {
63 char name[256];
64 uint32_t numplayers; //signature="STATUS\0\0"
65 } status_recv;
66
67
68 bool FLrListen_PacketCallback(char* data, int datalen, int from);
69 bool FLrListen_Run();