diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/client.h | 12 | ||||
| -rw-r--r-- | include/net_multiplayer.h | 34 | ||||
| -rw-r--r-- | include/proto.h | 25 | ||||
| -rw-r--r-- | include/server.h | 34 | ||||
| -rw-r--r-- | include/tcp.h | 24 | ||||
| -rw-r--r-- | include/udp.h | 23 |
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 |