1 /* this program is used to test that getaddrinfo() works correctly 2 * without a 'hints' argument 3 */ 4 5 #include <sys/types.h> 6 #include <sys/socket.h> 7 #include <netdb.h> 8 9 #include <stdio.h> /* for printf */ 10 #include <string.h> /* for memset */ 11 #include <netinet/in.h> /* for IPPROTO_TCP */ 12 13 #define SERVER_NAME "www.android.com" 14 #define PORT_NUMBER "9999" 15 16 int main(void) 17 { 18 struct addrinfo hints; 19 struct addrinfo* res; 20 int ret; 21 22 /* first, try without any hints */ 23 ret = getaddrinfo( SERVER_NAME, PORT_NUMBER, NULL, &res); 24 if (ret != 0) { 25 printf("first getaddrinfo returned error: %s\n", gai_strerror(ret)); 26 return 1; 27 } 28 29 freeaddrinfo(res); 30 31 /* now try with the hints */ 32 memset(&hints, 0, sizeof(hints)); 33 hints.ai_family = AF_UNSPEC; 34 hints.ai_socktype = SOCK_STREAM; 35 hints.ai_protocol = IPPROTO_TCP; 36 37 ret = getaddrinfo( SERVER_NAME, PORT_NUMBER, &hints, &res ); 38 if (ret != 0) { 39 printf("second getaddrinfo returned error: %s\n", gai_strerror(ret)); 40 return 1; 41 } 42 43 return 0; 44 } 45