#include "UDPTCPNetwork.h" #include #include /* close() */ #include /* memset() */ using namespace std; char dnsip[NET_HOSTLEN]; int UDPTCPNetwork_init = 0; // // convert host and port to sockaddr_in6 // int dns_filladdr (string host, string port, int ai_family, struct sockaddr_storage *sAddr) { struct addrinfo hints, *res; int err; bzero (&hints, sizeof (struct addrinfo)); hints.ai_family = ai_family; hints.ai_socktype = SOCK_DGRAM; if ((err = getaddrinfo (host.c_str(), port.c_str(), &hints, &res)) < 0) { fprintf (stdout, "dns_filladdr (getaddrinfo):%s\n", gai_strerror (err)); return -1; } memcpy (sAddr, res->ai_addr, res->ai_addrlen); freeaddrinfo (res); return 1; }; // // convert int to char* // char* itoa(char* buffer, int number, int size) { snprintf (buffer, size, "%d", number); return buffer; } void UDPTCPNetwork_Startup() { if (UDPTCPNetwork_init != 0) return; printf ("%s\n", __FUNCTION__); #ifdef BUILD_WINDOWS WORD wVersionRequested; WSADATA wsaData; int err; /* Use the MAKEWORD(lowbyte, highbyte) macro declared in Windef.h */ wVersionRequested = MAKEWORD(2, 2); err = WSAStartup(wVersionRequested, &wsaData); if (err != 0) { /* Tell the user that we could not find a usable */ /* Winsock DLL. */ printf("WSAStartup failed with error: %d\n", err); return; } #endif UDPTCPNetwork_init = 1; }