11
11
#include <netinet/in.h>
12
12
#include <arpa/inet.h>
13
13
#include <sys/select.h>
14
+ #include <netdb.h>
14
15
15
16
16
17
#define DEFAULT_SERVER_PORT 5432
@@ -24,15 +25,16 @@ int main(int argc, char *argv[])
24
25
int addrlen = sizeof (struct sockaddr_in );
25
26
char message [MAX_MSG_SIZE + 1 ];
26
27
27
- char hostip [20 ];
28
+ char hostname [MAX_MSG_SIZE ];
29
+ struct hostent * hostinfo ;
28
30
29
31
//parse command line arguments
30
32
if (argc == 2 ){
31
- strcpy (hostip , argv [1 ]);
33
+ strcpy (hostname , argv [1 ]);
32
34
} else if (argc == 4 ){
33
35
if (!strcmp ("-p" , argv [1 ])){
34
36
sscanf (argv [2 ], "%d" , & port );
35
- strcpy (hostip , argv [3 ]);
37
+ strcpy (hostname , argv [3 ]);
36
38
} else {
37
39
printf ("Usage: %s [-p PORT] HOST-IP-ADDRESS\n" , argv [0 ]);
38
40
exit (0 );
@@ -46,10 +48,9 @@ int main(int argc, char *argv[])
46
48
client_sockfd = socket (AF_INET , SOCK_STREAM , 0 );
47
49
server_addr .sin_family = AF_INET ;
48
50
server_addr .sin_port = htons (port );
49
- if (inet_aton (hostip , & server_addr .sin_addr ) < 0 ){
50
- perror ("inet_aton" );
51
- exit (1 );
52
- }
51
+
52
+ hostinfo = gethostbyname (hostname );
53
+ server_addr .sin_addr = * (struct in_addr * ) * hostinfo -> h_addr_list ;
53
54
54
55
//connect to server
55
56
if (connect (client_sockfd , (struct sockaddr * ) & server_addr , addrlen ) < 0 ){
0 commit comments