#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