diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/client.h | 8 | ||||
| -rw-r--r-- | include/net_multiplayer.h | 6 | ||||
| -rw-r--r-- | include/screen_gameType.h | 1 | ||||
| -rw-r--r-- | include/server.h | 6 | ||||
| -rw-r--r-- | include/string_length.h | 2 | ||||
| -rw-r--r-- | include/udp.h | 16 |
6 files changed, 24 insertions, 15 deletions
diff --git a/include/client.h b/include/client.h index fe28eed..cd8c4c4 100644 --- a/include/client.h +++ b/include/client.h @@ -12,14 +12,8 @@ #endif -#ifdef SUPPORT_NET_UNIX_TCP -extern int initTcpClient(char *ip, int port); -extern void selectClientTcpSocket(); -extern void quitTcpClient(); -#endif - #ifdef SUPPORT_NET_UNIX_UDP -extern int initUdpClient(char *ip, int port); +extern int initUdpClient(char *ip, int port, int proto); extern void eventPingServer(); extern void selectClientUdpSocket(); extern void refreshPingServerAlive(); diff --git a/include/net_multiplayer.h b/include/net_multiplayer.h index 0127de8..2da7dea 100644 --- a/include/net_multiplayer.h +++ b/include/net_multiplayer.h @@ -23,7 +23,11 @@ #define LIMIT_BUFFER 10240 -extern int initNetMuliplayer(int type, char *ip, int port); +#ifdef PUBLIC_SERVER +extern int initNetMulitplayerPublicServer(char *ip4, int port4, char *ip6, int port6); +#endif + +extern int initNetMuliplayer(int type, char *ip, int port, int proto); extern int getNetTypeGame(); extern void eventNetMultiplayer(); extern void quitNetMultiplayer(); diff --git a/include/screen_gameType.h b/include/screen_gameType.h index dc25d48..1780e1c 100644 --- a/include/screen_gameType.h +++ b/include/screen_gameType.h @@ -9,6 +9,7 @@ extern void initScreenGameType(); extern int getSettingGameType(); extern char* getSettingIP(); extern int getSettingPort(); +extern int getSettingProto(); extern void quitScreenGameType(); #endif diff --git a/include/server.h b/include/server.h index 178dc34..247b836 100644 --- a/include/server.h +++ b/include/server.h @@ -51,9 +51,13 @@ typedef struct client_struct buffer_t *buffer; } client_t; +#ifdef PUBLIC_SERVER +extern int initUdpPublicServer(char *ip4, int port4, char *ip6, int port6); +#endif #ifdef SUPPORT_NET_UNIX_UDP -extern int initUdpServer(char *ip, int port); +extern int initUdpServer(char *ip, int port, int proto); +extern int initUdpServerMultiProto(char *ip4, char *ip6, int port4, int port6); extern client_t* newUdpClient(sock_udp_t *sock_udp); extern void selectServerUdpSocket(); extern void quitUdpServer(); diff --git a/include/string_length.h b/include/string_length.h index 243cb69..b1712ee 100644 --- a/include/string_length.h +++ b/include/string_length.h @@ -11,6 +11,6 @@ #define STR_NAME_SIZE 32 #define STR_PATH_SIZE 4096 #define STR_FILE_NAME_SIZE 256 -#define STR_IP_SIZE 24 +#define STR_IP_SIZE 64 #endif diff --git a/include/udp.h b/include/udp.h index ce89c53..29f383b 100644 --- a/include/udp.h +++ b/include/udp.h @@ -5,21 +5,27 @@ #define MY_UDP -#include "main.h" +#define SUPPORT_IPv6 + +#define PROTO_UDPv4 0 +#define PROTO_UDPv6 1 typedef struct struct_sock_udp_t { int sock; + int proto; + + struct sockaddr_in6 sockAddr6; struct sockaddr_in sockAddr; } sock_udp_t; -extern sock_udp_t* newSockUdp(); +extern sock_udp_t* newSockUdp(int proto); extern void destroySockUdp(sock_udp_t *p); -extern sock_udp_t* bindUdpSocket(char *address, int port); -extern sock_udp_t* connectUdpSocket(char *address, int port); +extern sock_udp_t* bindUdpSocket(char *address, int port, int proto); +extern sock_udp_t* connectUdpSocket(char *address, int port, int proto); 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 getSockUdpIp(sock_udp_t *p, char *str_ip, int len); extern int getSockUdpPort(sock_udp_t *p); extern void closeUdpSocket(sock_udp_t *p); |