summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authororoborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-03-14 15:25:01 +0000
committeroroborus <oroborus@0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e>2008-03-14 15:25:01 +0000
commita4e34c257a4f5966ce699f48d30b3528bdaa45e4 (patch)
tree90835e3ad5263748ee099fc23db99b3cd12d9370 /include
parent1438b79069821cba744a4ea4739324560be64fb6 (diff)
- program bol prepisany tak, aby sa dal v buducnosti sietovy multiplayer prepisat pre protokol UDP
( BTW network.[ch] je uz zombia ) git-svn-id: http://opensvn.csie.org/tuxanci_ng@14 0ee4d065-81f0-4d1e-b06c-ff20ad07cc3e
Diffstat (limited to 'include')
-rw-r--r--include/client.h12
-rw-r--r--include/net_multiplayer.h34
-rw-r--r--include/proto.h25
-rw-r--r--include/server.h34
-rw-r--r--include/tcp.h24
-rw-r--r--include/udp.h23
6 files changed, 124 insertions, 28 deletions
diff --git a/include/client.h b/include/client.h
new file mode 100644
index 0000000..ba04e61
--- /dev/null
+++ b/include/client.h
@@ -0,0 +1,12 @@
+
+#ifndef MY_CLIENT
+
+#define MY_CLIENT
+
+extern int initTcpClient(char *ip, int port);
+extern void sendServer(char *msg);
+extern void eventServerBuffer();
+extern void selectClientTcpSocket();
+extern void quitTcpClient();
+
+#endif
diff --git a/include/net_multiplayer.h b/include/net_multiplayer.h
index 664623b..723545f 100644
--- a/include/net_multiplayer.h
+++ b/include/net_multiplayer.h
@@ -7,6 +7,8 @@
#include "item.h"
#include "buffer.h"
#include "arena.h"
+#include "tcp.h"
+#include "udp.h"
#define NET_GAME_TYPE_NONE 0
#define NET_GAME_TYPE_SERVER 1
@@ -15,37 +17,13 @@
#define NET_STATUS_OK 0
#define NET_STATUS_ZOMBIE 1
-#define LIMIT_BUFFER 10240
-
-typedef struct client_struct
-{
- int socket;
- int status;
+#define NET_PROTOCOL_TYPE_TCP 0
+#define NET_PROTOCOL_TYPE_UDP 1
- tux_t *tux;
- buffer_t *buffer;
-} client_t;
+#define LIMIT_BUFFER 10240
-extern int initServer(int port);
-extern int initClient(int port, char *ip);
-extern void netSetArena(arena_t *p);
+extern int initNetMuliplayer(int type, char *ip, int port);
extern int getNetTypeGame();
-
-extern void proto_send_init_server(client_t *client);
-extern void proto_recv_init_client(char *msg);
-extern void proto_send_event_server(tux_t *tux, int action, client_t *client);
-extern void proto_recv_event_client(char *msg);
-extern void proto_send_event_client(int action);
-extern void proto_recv_event_server(client_t *client, char *msg);
-extern void proto_send_newtux_server(client_t *client, tux_t *tux);
-extern void proto_recv_newtux_client(char *msg);
-extern void proto_send_deltux_server(client_t *client);
-extern void proto_recv_deltux_client(char *msg);
-extern void proto_send_additem_server(item_t *p);
-extern void proto_recv_additem_client(char *msg);
-extern void proto_send_context_client(tux_t *tux);
-extern void proto_recv_context_server(client_t *client, char *msg);
-
extern void eventNetMultiplayer();
extern void quitNetMultiplayer();
diff --git a/include/proto.h b/include/proto.h
new file mode 100644
index 0000000..5813165
--- /dev/null
+++ b/include/proto.h
@@ -0,0 +1,25 @@
+
+#ifndef MY_PROTO
+
+#define MY_PROTO
+
+#include "tux.h"
+#include "server.h"
+
+extern void proto_send_init_server(client_t *client);
+extern void proto_recv_init_client(char *msg);
+extern void proto_send_event_server(tux_t *tux, int action, client_t *client);
+extern void proto_recv_event_client(char *msg);
+extern void proto_send_event_client(int action);
+extern void proto_recv_event_server(client_t *client, char *msg);
+extern void proto_send_newtux_server(client_t *client, tux_t *tux);
+extern void proto_recv_newtux_client(char *msg);
+extern void proto_send_deltux_server(client_t *client);
+extern void proto_recv_deltux_client(char *msg);
+extern void proto_send_additem_server(item_t *p);
+extern void proto_recv_additem_client(char *msg);
+extern void proto_send_context_client(tux_t *tux);
+extern void proto_recv_context_server(client_t *client, char *msg);
+
+#endif
+
diff --git a/include/server.h b/include/server.h
new file mode 100644
index 0000000..d7e1313
--- /dev/null
+++ b/include/server.h
@@ -0,0 +1,34 @@
+
+#ifndef MY_SERVER
+
+#define MY_SERVER
+
+#include "list.h"
+#include "tux.h"
+#include "buffer.h"
+#include "tcp.h"
+#include "udp.h"
+
+typedef struct client_struct
+{
+ sock_tcp_t *socket_tcp;
+ sock_udp_t *socket_udp;
+ int status;
+
+ tux_t *tux;
+ buffer_t *buffer;
+} client_t;
+
+extern int initTcpServer(int port);
+extern client_t* newTcpClient(sock_tcp_t *sock_tcp);
+extern client_t* newUdpClient(sock_udp_t *sock_udp);
+extern void destroyClient(client_t *p);
+extern void sendClient(client_t *p, char *msg);
+extern void sendAllClientBut(char *msg, client_t *p);
+extern void sendAllClient(char *msg);
+extern void eventClientListBuffer();
+extern void selectServerTcpSocket();
+extern void quitTcpServer();
+
+#endif
+
diff --git a/include/tcp.h b/include/tcp.h
new file mode 100644
index 0000000..03a7ec7
--- /dev/null
+++ b/include/tcp.h
@@ -0,0 +1,24 @@
+
+#ifndef MY_TCP_H
+
+#define MY_TCP_H
+
+#include <netinet/in.h>
+
+typedef struct struct_sock_tcp_t
+{
+ int sock;
+ struct sockaddr_in sockAddr;
+} sock_tcp_t;
+
+extern sock_tcp_t* newSockTcp();
+extern void destroySockTcp(sock_tcp_t *p);
+extern sock_tcp_t* bindTcpSocket(int port);
+extern sock_tcp_t* getTcpNewClient(sock_tcp_t *p);
+extern void getSockTcpIp(sock_tcp_t *p, char *str_ip);
+extern sock_tcp_t* connectTcpSocket(char *ip, int port);
+extern int readTcpSocket(sock_tcp_t *p, void *address, int len);
+extern int writeTcpSocket(sock_tcp_t *p, void *address, int len);
+extern void closeTcpSocket(sock_tcp_t *p);
+
+#endif
diff --git a/include/udp.h b/include/udp.h
new file mode 100644
index 0000000..8619805
--- /dev/null
+++ b/include/udp.h
@@ -0,0 +1,23 @@
+
+#ifndef MY_UDP
+
+#include <netinet/in.h>
+
+#define MY_UDP
+
+typedef struct struct_sock_udp_t
+{
+ int sock;
+ struct sockaddr_in sockAddr;
+} sock_udp_t;
+
+extern sock_udp_t* newSockUdp();
+extern void destroySockUdp(sock_udp_t *p);
+extern sock_udp_t* bindUdpSocket(int port);
+extern sock_udp_t* connectUdpSocket(char *address, int port);
+extern int readUdpSocket(sock_udp_t *src, sock_udp_t *dst, void *address, int len);
+extern int writeUdpSocket(sock_udp_t *src, sock_udp_t *dst, void *address, int len);
+extern void getSockUdpIp(sock_udp_t *p, char *str_ip);
+extern void closeUdpSocket(sock_udp_t *p);
+
+#endif