typedef struct addrinfo { int ai_flags; //AI_PASSIVE,AI_CANONNAME,AI_NUMERICHOST int ai_family; //AF_INET,AF_INET6 int ai_socktype; //SOCK_STREAM,SOCK_DGRAM int ai_protocol; //IPPROTO_IP, IPPROTO_IPV4, IPPROTO_IPV6 etc. size_t ai_addrlen; //must be zero or a null pointer char* ai_canonname; //must be zero or a null pointer struct sockaddr* ai_addr; //must be zero or a null pointer struct addrinfo* ai_next; //must be zero or a null pointer }