#ifndef MY_UDP #ifndef __WIN32__ # include #else # include # include #endif #define MY_UDP #ifndef __WIN32__ #define SUPPORT_IPv6 #endif typedef struct struct_sock_udp_t { #ifndef __WIN32__ int sock; #else SOCKET sock; #endif int proto; #ifdef SUPPORT_IPv6 struct sockaddr_in6 sockAddr6; #endif struct sockaddr_in sockAddr; } sock_udp_t; extern sock_udp_t *newSockUdp(int proto); extern void destroySockUdp(sock_udp_t * p); extern sock_udp_t *bindUdpSocket(char *address, int port, int proto); extern sock_udp_t *connectUdpSocket(char *address, int port, int proto); extern int setUdpSockNonBlock(sock_udp_t * p); 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, int len); extern int getSockUdpPort(sock_udp_t * p); extern void closeUdpSocket(sock_udp_t * p); #endif